[{"data":1,"prerenderedAt":792},["ShallowReactive",2],{"blog-spec-driven-development-coding-agents-de":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":23,"sources":35,"cover":78,"og":79,"expertise":80,"locales":81,"lang":83,"title":85,"description":86,"coverAlt":87,"metaTitle":88,"takeaways":89,"faq":96,"toc":109,"blocks":140,"others":517},"spec-driven-development-coding-agents","2026-09-30",11,"agents",[9,10,11,12,13],"Spec-driven development","Coding agents","Acceptance criteria","Plan mode","AI engineering",[15,16,17,18,19,20,21,22],"spec-driven development","spec driven development coding agents","acceptance criteria for coding agents","AI coding agent plan mode","GitHub Spec Kit","Kiro specs requirements design tasks","vibe coding vs spec-driven development","EARS requirements syntax",[24,27,29,32],{"name":25,"url":26},"Vibe coding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVibe_coding",{"name":19,"url":28},"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fspec-kit",{"name":30,"url":31},"EARS (Easy Approach to Requirements Syntax)","https:\u002F\u002Falistairmavin.com\u002Fears\u002F",{"name":33,"url":34},"Kiro","https:\u002F\u002Fkiro.dev",[36,39,41,44,47,50,52,55,58,61,64,67,70,72,75],{"title":37,"url":38},"Birgitta Böckeler: Understanding Spec-Driven-Development: Kiro, spec-kit, and Tessl (martinfowler.com, 15 October 2025)","https:\u002F\u002Fmartinfowler.com\u002Farticles\u002Fexploring-gen-ai\u002Fsdd-3-tools.html",{"title":40,"url":28},"GitHub Spec Kit: README",{"title":42,"url":43},"GitHub Spec Kit: spec-driven.md methodology","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fspec-kit\u002Fblob\u002Fmain\u002Fspec-driven.md",{"title":45,"url":46},"Kiro documentation: specs","https:\u002F\u002Fkiro.dev\u002Fdocs\u002Fspecs\u002F",{"title":48,"url":49},"Kiro: Introducing Kiro","https:\u002F\u002Fkiro.dev\u002Fblog\u002Fintroducing-kiro\u002F",{"title":51,"url":31},"Alistair Mavin: EARS, the Easy Approach to Requirements Syntax",{"title":53,"url":54},"Anthropic: Best practices for Claude Code","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fbest-practices",{"title":56,"url":57},"Cline documentation: Plan and Act","https:\u002F\u002Fdocs.cline.bot\u002Ffeatures\u002Fplan-and-act",{"title":59,"url":60},"OpenAI: Codex slash command reference","https:\u002F\u002Flearn.chatgpt.com\u002Fdocs\u002Freference\u002Fslash-commands",{"title":62,"url":63},"METR: early-2025 AI and experienced open-source developer productivity (July 2025)","https:\u002F\u002Fmetr.org\u002Fblog\u002F2025-07-10-early-2025-ai-experienced-os-dev-study\u002F",{"title":65,"url":66},"METR: We are changing our developer productivity experiment design (February 2026)","https:\u002F\u002Fmetr.org\u002Fblog\u002F2026-02-24-uplift-update\u002F",{"title":68,"url":69},"Thoughtworks Technology Radar: Spec-driven development","https:\u002F\u002Fwww.thoughtworks.com\u002Fradar\u002Ftechniques\u002Fspec-driven-development",{"title":71,"url":26},"Wikipedia: Vibe coding",{"title":73,"url":74},"Anthropic: Claude API pricing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fabout-claude\u002Fpricing",{"title":76,"url":77},"Anthropic: Prompt caching","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fprompt-caching","\u002Fimages\u002Fblog\u002Fspec-driven-development-coding-agents\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fspec-driven-development-coding-agents\u002Fog.jpg","ai-engineer",[82,83,84],"en","de","hu","Spec-driven Development für Coding-Agenten: den Plan vor dem Code festlegen","Vibe Coding scheitert an echten Codebasen. Schreib eine Spec mit Akzeptanzkriterien, Plan und Tasks, lass den Agenten abhaken und prüfe vor dem ersten Code.","Titelbild zu Spec-driven Development: eine Pipeline von Spec und Plan zu Tasks und Verifikation, mit einem Review-Gate vor jedem Code.","Spec-driven Development für Coding-Agenten · Balázs Csorba",[90,91,92,93,94,95],"Vibe Coding scheitert an echten Codebasen, weil die ungeschriebenen Regeln genau die sind, die der Agent falsch macht. Schreib die Absicht auf, bevor der Agent Code schreibt.","Eine brauchbare Spec beschreibt das Verhalten als prüfbare Akzeptanzkriterien, nennt, was nicht zum Umfang gehört, und endet mit einem Check, der beweist, dass das Feature funktioniert.","Bestätige den Plan, bevor es Änderungen gibt: Dateien, Schnittstellen, Reihenfolge der Arbeit und Risiken. Dort lässt sich ein falscher Entwurf am günstigsten abfangen.","Prüfe, was jedes Tool behält. Spec Kit und Kiro speichern Spec-Dateien, während der Plan-Modus in Claude Code und Cline nur einen schreibgeschützten Planungsschritt bietet, keine dauerhafte Spec.","Spec-Tokens sind günstig, Prüfzeit und Aufmerksamkeit nicht. Passe den Prozess an die Änderung an und verzichte auf den Plan bei einem Diff, den du in einem Satz beschreiben kannst.","Bewerte das Ergebnis an Nacharbeit und Prüfzeit, nicht daran, wie schnell der erste Entwurf da war. Die Messungen von METR zeigen, wie unzuverlässig dieses Gefühl ist.",[97,100,103,106],{"q":98,"a":99},"Was ist Spec-driven Development?","Du schreibst auf, was ein Feature leisten muss, wie es gebaut wird und wie du es prüfst, und erst dann lässt du einen Coding-Agenten Code gegen diese Dokumente schreiben. Spec, Plan und Task-Liste sind Dateien, die du prüfen, vergleichen und testen kannst, statt eines Chatverlaufs.",{"q":101,"a":102},"Ist Spec-driven Development nur Vibe Coding mit mehr Papierkram?","Mehr Papierkram, ja, aber die Prüfung verlagert sich. Vibe Coding kann Ergebnisse ohne gründliche Prüfung übernehmen. Spec-driven Arbeit legt die Prüfung auf Spec, Plan und Nachweise. Für dasselbe Feature kostet das mehr, deshalb lohnt es sich bei Änderungen über mehrere Dateien oder an riskanten Stellen, nicht bei kleinen Fixes.",{"q":104,"a":105},"Welches Tool soll ich nehmen?","Das, mit dem dein Team dauerhaft arbeitet. Spec Kit führt Spec-, Plan-, Task- und Implementierungsschritte als Chatbefehle aus und legt die Artefakte pro Feature in einem Ordner ab. Kiro hält Anforderungen, Design und Tasks als Dateien je Spec. Der Plan-Modus in Claude Code und Cline gibt dir einen schreibgeschützten Planungsschritt, der hilft, aber er pflegt keine Spec für dich.",{"q":107,"a":108},"Wie helfen Akzeptanzkriterien beim Code-Review?","Jedes Kriterium wird zu einer Prüfung, die der Reviewer ansehen kann. Er fragt, ob jedes Kriterium einen Nachweis hat, ob eine Prüfung überhaupt scheitern kann und ob sich etwas außerhalb des Umfangs geändert hat. Das ist eine kleinere und verlässlichere Aufgabe als ein großer Diff, bei dem die beabsichtigte Änderung unbekannt ist.",[110,113,116,119,122,125,128,131,134,137],{"id":111,"title":112},"why-vibe-coding-breaks","Warum Vibe Coding an echten Codebasen scheitert",{"id":114,"title":115},"the-workflow","Der Ablauf: Spec, Plan, Tasks, Verifikation",{"id":117,"title":118},"spec-template","Eine Spec mit Akzeptanzkriterien",{"id":120,"title":121},"plan-and-tasks","Die Plan-Datei und die Task-Checkliste",{"id":123,"title":124},"tooling","Was die Werkzeuge tatsächlich bieten",{"id":126,"title":127},"reviewable-and-testable","Wie Specs die Ausgabe des Agenten prüfbar und testbar machen",{"id":129,"title":130},"cost-and-time","Kosten und Zeit: wann sich die Spec lohnt",{"id":132,"title":133},"where-it-falls-short","Wo Spec-driven Development an Grenzen stößt",{"id":135,"title":136},"first-steps","Was ich zuerst tun würde",{"id":138,"title":139},"sources","Quellen",[141,145,148,151,154,179,182,189,190,193,202,229,232,233,236,239,242,243,246,248,257,259,260,263,319,322,325,327,330,331,334,341,344,350,358,361,362,365,368,371,415,418,419,436,439,440,453,468,469],{"type":142,"content":143},"paragraph",[144],"Vibe Coding funktioniert, bis eine Codebasis eine Geschichte hat. Einen Prototyp kann man daran messen, ob er läuft. Ein Produktionsservice lässt sich so nicht beurteilen, weil der Agent die ungeschriebenen Regeln nicht kennt: die Retry-Regel, auf die sich das Zahlungsteam geeinigt hat, das Flag, das einen alten Import schützt, die Abfrage, die unter einem Timeout bleiben muss. Er füllt diese Lücken mit plausiblen Vermutungen, und du findest sie im Review, wenn der Code schon existiert. Die Abhilfe ist, die Absicht zuerst aufzuschreiben: eine Spec mit prüfbaren Akzeptanzkriterien, einen Plan, den du freigibst, und eine Task-Liste, die der Agent abarbeitet und abhakt, mit einem Nachweis für jedes Häkchen. Das ist Spec-driven Development, und ich würde es für jede Änderung verwenden, die mehr als ein Modul berührt.",{"type":142,"content":146},[147],"Andrej Karpathy hat Vibe Coding im Februar 2025 geprägt: Software entsteht, indem man einem Modell beschreibt, was man will, und das Ergebnis ohne gründliche Prüfung übernimmt. Für ein Wochenendtool ist das in Ordnung. Es wird teuer, wenn diese Gewohnheit auf eine Codebasis mit Konventionen, gemeinsamen Modulen und zahlenden Kunden trifft, denn dann übernimmt das Review die eigentliche Arbeit, und niemand hat festgelegt, was es prüfen soll.",{"type":149,"level":150,"id":111,"text":112},"heading",2,{"type":142,"content":152},[153],"Vier Fehlermuster kehren immer wieder. Sie haben eine gemeinsame Ursache: Der Agent arbeitet aus einem Prompt, das Team aus einem Verständnis, das nie aufgeschrieben wurde.",{"type":155,"ordered":156,"items":157},"list",false,[158,164,169,174],[159,163],{"tag":160,"children":161},"strong",[162],"Erfundene Anforderungen."," Der Agent füllt Lücken mit plausiblem Verhalten, etwa einem neuen Standardwert oder einer Fehlermeldung, auf die sich niemand geeinigt hat. Entschieden hat das trotzdem niemand.",[165,168],{"tag":160,"children":166},[167],"Konventions-Drift."," Jede Änderung ist für sich genommen korrekt und ignoriert die Muster, auf die sich der Rest des Codes stützt.",[170,173],{"tag":160,"children":171},[172],"Undefiniertes Fertig."," Anthropics Hinweise zu Claude Code sagen: Ohne einen Check, den der Agent ausführen kann, ist „sieht fertig aus“ das einzige Signal, das vorliegt.",[175,178],{"tag":160,"children":176},[177],"Teures Review."," Ein großer, in einem Durchgang geschriebener Diff zwingt den Reviewer, die Absicht aus dem Code zu rekonstruieren.",{"type":142,"content":180},[181],"Die gemessenen Kosten sind nicht die, mit denen die meisten rechnen. Im Juli 2025 ließ METR 246 echte Issues aus großen Open-Source-Repositories zufällig mit oder ohne KI-Werkzeuge bearbeiten, meist mit Cursor Pro und Claude 3.5 oder 3.7 Sonnet, bei 16 erfahrenen Entwicklern. Vor der Studie erwarteten sie, dank KI 24 % schneller zu sein. Danach glaubten sie immer noch, 20 % schneller geworden zu sein. Gemessen wurden 19 % längere Bearbeitungszeiten, wenn KI erlaubt war.",{"type":183,"variant":184,"title":185,"body":186},"callout","note","Die Zahl von 2025 neben METRs Update lesen",[187],[188],"METR sagt, dass seine Ergebnisse veraltet sind, und verweist auf eine Nachfolgeuntersuchung vom Februar 2026 mit 57 Entwicklern und mehr als 800 Aufgaben. Die dortigen Schätzungen haben Konfidenzintervalle, die die Null einschließen, und METR nennt die neuen Daten „ein unzuverlässiges Signal“. Für mich geht es dabei um Messung: Das gefühlte Tempo ist ein schlechtes Messinstrument.",{"type":149,"level":150,"id":114,"text":115},{"type":142,"content":191},[192],"Der Ablauf hat fünf Stufen, und jede erzeugt ein Artefakt, das ein Mensch lesen kann, bevor die nächste Stufe beginnt. Der Papierkram ist nicht der Sinn der Sache. Jede Freigabe ist eine günstige Stelle, den Agenten anzuhalten, und alles zwischen zwei Freigaben ist Arbeit des Agenten.",{"type":194,"attrs":195,"inner":199,"caption":200},"diagram",{"viewBox":196,"role":197,"aria-labelledby":198},"0 0 720 270","img","d1-sdd-t d1-sdd-d","\u003Ctitle id=\"d1-sdd-t\">Spec-driven-Workflow mit drei menschlichen Freigaben\u003C\u002Ftitle>\u003Cdesc id=\"d1-sdd-d\">Fünf Kästen nebeneinander von links nach rechts: Spec, Plan, Tasks, Umsetzung und Verifikation. Die menschlichen Freigaben liegen unter Spec, Plan und dem Verifikations-Kasten. Jeder Kasten nennt das Artefakt, das er erzeugt, oder die Arbeit, die er leistet.\u003C\u002Fdesc>\u003Ctext x=\"20\" y=\"24\" class=\"d-label\">Fünf Stufen, drei Freigaben\u003C\u002Ftext>\u003Crect x=\"20\" y=\"70\" width=\"120\" height=\"84\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"80\" y=\"104\" text-anchor=\"middle\" class=\"d-text\">Spec\u003C\u002Ftext>\u003Ctext x=\"80\" y=\"126\" text-anchor=\"middle\" class=\"d-small\">was, warum\u003C\u002Ftext>\u003Crect x=\"160\" y=\"70\" width=\"120\" height=\"84\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"220\" y=\"104\" text-anchor=\"middle\" class=\"d-text\">Plan\u003C\u002Ftext>\u003Ctext x=\"220\" y=\"126\" text-anchor=\"middle\" class=\"d-small\">Dateien, Risiken\u003C\u002Ftext>\u003Crect x=\"300\" y=\"70\" width=\"120\" height=\"84\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"360\" y=\"104\" text-anchor=\"middle\" class=\"d-text\">Tasks\u003C\u002Ftext>\u003Ctext x=\"360\" y=\"126\" text-anchor=\"middle\" class=\"d-small\">je ein Check\u003C\u002Ftext>\u003Crect x=\"440\" y=\"70\" width=\"120\" height=\"84\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"500\" y=\"104\" text-anchor=\"middle\" class=\"d-text\">Umsetzung\u003C\u002Ftext>\u003Ctext x=\"500\" y=\"126\" text-anchor=\"middle\" class=\"d-small\">Agent hakt ab\u003C\u002Ftext>\u003Crect x=\"580\" y=\"70\" width=\"120\" height=\"84\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"640\" y=\"104\" text-anchor=\"middle\" class=\"d-text\">Verifikation\u003C\u002Ftext>\u003Ctext x=\"640\" y=\"126\" text-anchor=\"middle\" class=\"d-small\">Nachweis, Review\u003C\u002Ftext>\u003Cpath d=\"M140 112 H151\" class=\"d-line\" \u002F>\u003Cpath d=\"M160 112 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Cpath d=\"M280 112 H291\" class=\"d-line\" \u002F>\u003Cpath d=\"M300 112 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Cpath d=\"M420 112 H431\" class=\"d-line\" \u002F>\u003Cpath d=\"M440 112 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Cpath d=\"M560 112 H571\" class=\"d-line\" \u002F>\u003Cpath d=\"M580 112 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Cpath d=\"M80 154 V168\" class=\"d-dash\" \u002F>\u003Ctext x=\"80\" y=\"186\" text-anchor=\"middle\" class=\"d-label\">Freigabe\u003C\u002Ftext>\u003Cpath d=\"M220 154 V168\" class=\"d-dash\" \u002F>\u003Ctext x=\"220\" y=\"186\" text-anchor=\"middle\" class=\"d-label\">Freigabe\u003C\u002Ftext>\u003Cpath d=\"M640 154 V168\" class=\"d-dash\" \u002F>\u003Ctext x=\"640\" y=\"186\" text-anchor=\"middle\" class=\"d-label\">Freigabe\u003C\u002Ftext>\u003Ctext x=\"360\" y=\"240\" text-anchor=\"middle\" class=\"d-small\">Anhalten an einer Freigabe: Eine kurze Spec ist günstig zu korrigieren, ein Merge nicht.\u003C\u002Ftext>",[201],"Die Freigaben liegen unter Spec, Plan und Verifikation. Eine kurze Spec oder ein kurzer Plan lässt sich günstig korrigieren, ein gemergter Change nicht.",{"type":155,"ordered":156,"items":203},[204,209,214,219,224],[205,208],{"tag":160,"children":206},[207],"Spec."," Das Problem, das gewünschte Verhalten, die Nicht-Ziele und die Akzeptanzkriterien. Ein Mensch gibt sie frei.",[210,213],{"tag":160,"children":211},[212],"Plan."," Die Dateien und Schnittstellen, die sich ändern, die Reihenfolge der Arbeit, die Risiken und was nicht dazugehört. Ein Mensch gibt ihn frei, denn ein falsches Design fällt hier am günstigsten auf.",[215,218],{"tag":160,"children":216},[217],"Tasks."," Eine Checkliste aus kleinen Schritten, jeder mit eigenem Check.",[220,223],{"tag":160,"children":221},[222],"Umsetzung."," Der Agent schreibt Code und Tests für jeweils eine Task und hakt sie erst ab, wenn der Check besteht.",[225,228],{"tag":160,"children":226},[227],"Verifikation."," Jedes Kriterium ist einem Test, einem Befehl oder einer manuellen Prüfung zugeordnet, und der Nachweis hängt an der Änderung. Ein Mensch prüft diesen Nachweis, nicht den Diff allein.",{"type":142,"content":230},[231],"Anthropics Best-Practice-Leitfaden für Claude Code beschreibt dieselbe Reihenfolge: erkunden, planen, umsetzen, committen. Planen ist laut Leitfaden am nützlichsten, wenn du dir beim Ansatz nicht sicher bist, wenn die Änderung mehrere Dateien betrifft oder wenn du den Code nicht kennst. Und wenn du den Diff in einem Satz beschreiben kannst, lass den Plan weg. Beiden Teilen stimme ich zu.",{"type":149,"level":150,"id":117,"text":118},{"type":142,"content":234},[235],"Eine Spec ist kurz. Wenn sie über ein paar hundert Wörter hinausgeht, beschreibt sie wahrscheinlich die Implementierung, und die gehört in den Plan. Am wichtigsten sind die Akzeptanzkriterien, und ich würde mit EARS beginnen, dem Easy Approach to Requirements Syntax. Alistair Mavin und Kollegen bei Rolls-Royce haben ihn entwickelt, als sie Lufttüchtigkeitsregeln für das Steuerungssystem eines Strahltriebwerks analysierten, veröffentlicht wurde er 2009 zum ersten Mal. Jede Anforderung hat eine von wenigen Formen: WHEN für Ereignisse, WHILE für Zustände, IF und THEN für unerwünschte Situationen und WHERE für optionale Funktionen.",{"type":237,"code":238},"code","# Spec: cart login prompt and payment safety (example)\n\n## Problem\nLogged-out visitors reach checkout without learning that an account unlocks the B2B price list. A timeout on the payment call sometimes leads to a second order.\n\n## Behaviour\nWhat the shop must do, from the user's point of view.\n\n## Non-goals\n- No change to how price lists are modelled\n- No redesign of the cart layout\n\n## Acceptance criteria\n- AC-1: WHEN a logged-out visitor opens the cart, the system SHALL show a login prompt above the checkout button.\n- AC-2: WHILE the price cache is older than 15 minutes, the system SHALL refetch prices before it shows totals.\n- AC-3: IF the payment call times out, THEN the system SHALL keep the order pending and SHALL NOT submit a second charge.\n- AC-4: WHERE the account has a negotiated price list, the system SHALL show that list instead of the public price.\n\n## Verification\n- AC-1 -> tests\u002Fcart\u002Flogin-prompt.spec.ts (e2e)\n- AC-2 -> tests\u002Fpricing\u002Fcache-refetch.test.ts (unit, fake clock)\n- AC-3 -> tests\u002Fcheckout\u002Ftimeout.spec.ts (e2e) and a payment unit test\n- AC-4 -> tests\u002Fpricing\u002Fnegotiated.test.ts (unit)\nDone when every line above passes in CI and the evidence is attached to the change.",{"type":142,"content":240},[241],"Die Kriterien in diesem Beispiel sind für einen B2B-Shop erfunden. Entscheidend ist die Form: ein Satz mit einem Auslöser oder Zustand, aus dem sich ein Test ableiten lässt, und eine ID, auf die Plan und Nachweis verweisen können. Die IF-THEN-Zeile ist am wichtigsten, weil sie vor einer doppelten Belastung schützt. Genau so einen Fall übersieht ein Agent, wenn du ihn nicht aufschreibst.",{"type":149,"level":150,"id":120,"text":121},{"type":142,"content":244},[245],"Der Plan beantwortet das Wie, und er sollte kurz genug sein, um ihn in wenigen Minuten zu prüfen. Anthropics Leitfaden beschreibt die nützlichsten Specs als solche, die die beteiligten Dateien und Schnittstellen nennen, festhalten, was nicht zum Umfang gehört, und mit einem End-to-End-Check enden, der beweist, dass das Feature funktioniert. Der Plan sollte außerdem die bekannten Risiken und die Reihenfolge der Arbeit nennen. Das riskanteste Stück baust du zuerst, solange sich das Design noch ändern kann.",{"type":237,"code":247},"# Plan: cart login prompt and payment safety\n\n## Files that change\n- src\u002Fcart\u002FCartPage.vue: login prompt for logged-out visitors (AC-1)\n- src\u002Fpricing\u002FpriceCache.ts: refetch after 15 minutes (AC-2)\n- src\u002Fpricing\u002Fnegotiated.ts: negotiated list lookup (AC-4)\n- src\u002Fcheckout\u002Fpayment.ts: idempotency key, timeout keeps the order pending (AC-3)\n\n## Interfaces\n- payment.charge() gains an idempotencyKey argument; both callers are updated\n- priceCache.get() keeps its signature and also returns fetchedAt\n\n## Order of work\n1. Idempotency key and timeout path (riskiest, built first)\n2. Negotiated price lookup\n3. Price cache refetch\n4. Login prompt (UI, last)\n\n## Risks\n- A retry after a timeout could charge twice (covered by AC-3)\n\n## Out of scope\n- Changing how price lists are stored",{"type":142,"content":249},[250,251,256],"Die Task-Liste macht die Arbeit des Agenten sichtbar. Jede Task ist klein genug, dass ihr Check aus einem Grund scheitern kann, und sie nennt das Kriterium, dem sie dient. Ein Häkchen ohne Nachweis ist nur eine Behauptung, und Behauptungen sind das, wovon Vibe Coding lebt. Dasselbe Prinzip steckt hinter den Guides und Sensoren in meinem ",{"tag":252,"to":253,"children":254},"link","\u002Fblog\u002Fharness-engineering-coding-agents",[255],"Harness-Engineering-Artikel",".",{"type":237,"code":258},"# Tasks: cart login prompt and payment safety\n\n- [x] T1 Idempotency key on payment.charge() (AC-3)\n      check: unit test 'retry after timeout does not charge twice' passes\n- [x] T2 Timeout path keeps the order pending (AC-3)\n      check: e2e 'payment timeout' passes\n- [ ] T3 Negotiated price lookup (AC-4)\n      check: unit test 'account sees negotiated list' passes\n- [ ] T4 Price cache refetch after 15 minutes (AC-2)\n      check: unit test with fake clock passes\n- [ ] T5 Login prompt for logged-out visitors (AC-1)\n      check: e2e 'logged-out cart' passes\n- [ ] T6 Full suite green; attach output and map AC-1 to AC-4 to tests",{"type":149,"level":150,"id":123,"text":124},{"type":142,"content":261},[262],"Die Werkzeuge unterscheiden sich weniger im Ablauf als darin, wo die Spec liegt und was die Freigabe erzwingt. Die Tabelle zeigt, was ich im Oktober 2026 in der offiziellen Dokumentation bestätigen konnte.",{"type":264,"head":265,"rows":274},"table",[266,268,270,272],[267],"Tool",[269],"Was es speichert",[271],"Wo die menschliche Freigabe liegt",[273],"Vorbehalt",[275,283,292,301,310],[276,277,279,281],[19],[278],"Chatbefehle für Constitution, Specify, Plan, Tasks, Implement und Converge, dazu ein Spec-Ordner pro Feature",[280],"Chatschritte; die Constitution verlangt, dass Tests vor der Implementierung freigegeben werden",[282],"Viel Papierkram, wie Böckeler festgestellt hat",[284,286,288,290],[285],"Kiro-Specs",[287],"requirements.md (oder bugfix.md), design.md und tasks.md je Spec",[289],"Quick Spec erzeugt alle drei Dateien in einem Durchgang ohne Freigabeschritte",[291],"Aufwand, den ein kleiner Bugfix nicht braucht",[293,295,297,299],[294],"Claude Code Plan-Modus",[296],"Der Plan in der Sitzung; Strg+G öffnet ihn im Editor",[298],"Du gibst den Plan frei oder drückst Umschalt+Tab, um den Modus zu verlassen",[300],"Schreibgeschützte Planung, keine dauerhafte Spec",[302,304,306,308],[303],"Cline Plan und Act",[305],"Der Plan bleibt im Chat, außer du bittest um eine Markdown-Zusammenfassung",[307],"Der Plan-Modus kann keine Dateien ändern und keine Befehle ausführen; der Act-Modus kann es",[309],"Für den Moduswechsel ist keine Freigabeeinstellung beschrieben",[311,313,315,317],[312],"Codex \u002Fplan",[314],"In OpenAIs Befehlsreferenz als „Toggle plan mode for multi-step planning“ gelistet",[316],"In den Seiten, die ich öffnen konnte, nicht beschrieben",[318],"Schreibschutz und Speicherung nicht verifiziert, deshalb verlasse ich mich nicht darauf",{"type":142,"content":320},[321],"Zwei Zeilen dieser Tabelle zählen mehr als die anderen. Ein Plan-Modus ist ein Modus, keine Spec: Er verhindert, dass der Agent während des Nachdenkens editiert, was wertvoll ist, aber er gibt dir kein dauerhaftes Artefakt, das du prüfen, vergleichen oder testen kannst. Die dateibasierten Werkzeuge verschieben die Kosten in den Review, darauf komme ich unten zurück.",{"type":142,"content":323},[324],"Kiros Einführung sagt, dass seine User Stories EARS-Akzeptanzkriterien tragen, also die Form, die ich weiter unten empfehle. Entscheidend ist eine feste Satzform, aus der sich ein Test ableiten lässt. Spec Kit führt seine Schritte im Chat des Agenten aus, die Einrichtung läuft im Terminal:",{"type":237,"code":326},"uv tool install specify-cli\nspecify init my-project --integration copilot\ncd my-project",{"type":142,"content":328},[329],"Danach führst du im Chat \u002Fspeckit-constitution einmal pro Projekt aus und \u002Fspeckit-specify, \u002Fspeckit-plan, \u002Fspeckit-tasks und \u002Fspeckit-implement für jedes Feature. Die README nennt Python 3.11 oder neuer, uv und einen unterstützten KI-Coding-Agenten als Voraussetzungen, und ihre Beispiele verwenden GitHub Copilot. Im Methodik-Dokument verlangt der Artikel zu testgetriebener Entwicklung in der Constitution, dass Tests vor der Implementierung freigegeben werden.",{"type":149,"level":150,"id":126,"text":127},{"type":142,"content":332},[333],"Eine Spec verändert, was der Reviewer tut. Ohne Spec rekonstruiert er die Absicht aus dem Diff. Mit Spec stellt er vier konkrete Fragen: Hat jedes Kriterium einen Check, der scheitern kann? Gibt es einen Nachweis, dass jeder Check besteht? Hat sich etwas außerhalb des Umfangs geändert? Und entspricht der Code noch den Risiken, die der Plan benannt hat? Jedes Kriterium zeigt auf eine Task, jede Task auf einen Test, und jeder Test hinterlässt einen Nachweis.",{"type":194,"attrs":335,"inner":338,"caption":339},{"viewBox":336,"role":197,"aria-labelledby":337},"0 0 720 210","d2-trace-t d2-trace-d","\u003Ctitle id=\"d2-trace-t\">Von einem Akzeptanzkriterium zum Nachweis\u003C\u002Ftitle>\u003Cdesc id=\"d2-trace-d\">Vier Kästen nebeneinander: ein Akzeptanzkriterium, die Task, die es umsetzt, der Test, der es prüft, und die Ausgabe der Continuous Integration, die das Ergebnis zeigt. Ein Reviewer vergleicht den Nachweis mit dem Kriterium, nicht nur den Diff.\u003C\u002Fdesc>\u003Ctext x=\"20\" y=\"24\" class=\"d-label\">Rückverfolgbarkeit für ein Kriterium\u003C\u002Ftext>\u003Crect x=\"12\" y=\"60\" width=\"144\" height=\"80\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"84\" y=\"94\" text-anchor=\"middle\" class=\"d-text\">AC-3\u003C\u002Ftext>\u003Ctext x=\"84\" y=\"116\" text-anchor=\"middle\" class=\"d-small\">keine Doppelzahlung\u003C\u002Ftext>\u003Crect x=\"196\" y=\"60\" width=\"144\" height=\"80\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"268\" y=\"94\" text-anchor=\"middle\" class=\"d-text\">Task T2\u003C\u002Ftext>\u003Ctext x=\"268\" y=\"116\" text-anchor=\"middle\" class=\"d-small\">Timeout-Pfad\u003C\u002Ftext>\u003Crect x=\"380\" y=\"60\" width=\"144\" height=\"80\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"452\" y=\"94\" text-anchor=\"middle\" class=\"d-text\">e2e-Test\u003C\u002Ftext>\u003Ctext x=\"452\" y=\"116\" text-anchor=\"middle\" class=\"d-small\">Zahlungs-Timeout\u003C\u002Ftext>\u003Crect x=\"564\" y=\"60\" width=\"144\" height=\"80\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"636\" y=\"94\" text-anchor=\"middle\" class=\"d-text\">CI-Ausgabe\u003C\u002Ftext>\u003Ctext x=\"636\" y=\"116\" text-anchor=\"middle\" class=\"d-small\">Exit-Code 0\u003C\u002Ftext>\u003Cpath d=\"M156 100 H187\" class=\"d-line\" \u002F>\u003Cpath d=\"M196 100 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Cpath d=\"M340 100 H371\" class=\"d-line\" \u002F>\u003Cpath d=\"M380 100 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Cpath d=\"M524 100 H555\" class=\"d-line\" \u002F>\u003Cpath d=\"M564 100 l-9 -5 v10 z\" class=\"d-head\" \u002F>\u003Cpath d=\"M84 146 V168 H636 V146\" class=\"d-dash\" \u002F>\u003Ctext x=\"360\" y=\"192\" text-anchor=\"middle\" class=\"d-small\">Der Reviewer vergleicht den Nachweis mit dem Kriterium.\u003C\u002Ftext>",[340],"Ein Kriterium ohne Test oder ein Test ohne Nachweis ist eine Lücke, die der Reviewer melden sollte.",{"type":142,"content":342},[343],"Anthropics Leitfaden sagt dasselbe aus Sicht des Agenten. Gib ihm einen Check, den er ausführen kann, etwa Tests, einen Build oder einen Screenshot zum Vergleich, und verlange Nachweise statt Behauptungen: die Testausgabe, den Befehl, den er ausgeführt hat, und was dieser zurückgab. Der Leitfaden schlägt außerdem eine zweite Meinung vor, einen frischen Subagenten, der den Diff gegen den Plan prüft.",{"type":183,"variant":345,"title":346,"body":347},"tip","Einen frischen Reviewer den Diff gegen den Plan prüfen lassen",[348],[349],"Bitte einen Subagenten in einem frischen Kontext zu prüfen, ob jede geplante Anforderung umgesetzt ist, ob die genannten Grenzfälle Tests haben und ob sich nichts außerhalb des Umfangs der Task geändert hat. Sag ihm, dass er nur Lücken melden soll, die die Korrektheit oder die genannten Anforderungen betreffen, denn ein Reviewer, der nach Lücken suchen soll, meldet auch dann welche, wenn die Arbeit in Ordnung ist.",{"type":142,"content":351},[352,353,357],"Von Agenten geschriebene Pull Requests machen das dringlicher. Mein Artikel über den ",{"tag":252,"to":354,"children":355},"\u002Fblog\u002Fai-generated-pr-review-bottleneck",[356],"KI-Code-Review-Engpass"," behandelt, was passiert, wenn die Review-Warteschlange vollläuft, und ein evidenzbasiertes Review ist eine Möglichkeit, sie in Bewegung zu halten.",{"type":142,"content":359},[360],"Halte Beispiele in Specs synthetisch. Specs und Pläne werden committet, geprüft und oft als Kontext an ein Modell geschickt. Ein echter Kundenname in einem Beispiel wird damit zu personenbezogenen Daten, die ein Dritter verarbeitet. Wenn die DSGVO greift, finde heraus, wo dein Agent-Anbieter diesen Kontext verarbeitet und wie lange er gespeichert wird, und prüfe, ob dein Auftragsverarbeitungsvertrag das abdeckt.",{"type":149,"level":150,"id":129,"text":130},{"type":142,"content":363},[364],"Die erste Kostenposition ist menschliche Zeit, keine Tokens. Eine Spec und einen Plan zu schreiben und zu prüfen kostet echte Zeit, und das ist der Preis des Ansatzes. Ich habe keine gemessene Zahl dafür, was er spart, und Herstellerzahlen verdienen dieselbe Skepsis wie die METR-Zahlen. Die Token-Seite ist klein und leicht nachzurechnen.",{"type":142,"content":366},[367],"Zu Anthropics aktuellen Preisen kostet eine Spec von etwa 6.000 Tokens, die der Agent bei jedem von 40 Aufrufen liest, auf Claude Sonnet 5.5 ohne Cache etwa 48 Cent, bei 2 Dollar pro Million Input-Tokens. Mit dem 5-Minuten-Prompt-Cache kostet der erste Schreibvorgang 2,50 Dollar pro Million und jeder weitere Lesevorgang 0,10 Dollar pro Million. Dieselben 40 Aufrufe kommen so auf etwa 4 Cent, wenn sie innerhalb des Cache-Fensters eintreffen. Das sind meine eigenen Berechnungen auf Basis der offiziellen Preisseite. Sie lassen den Code, den der Agent liest, und alle Output-Tokens weg, zeigen also den Anteil der Spec an der Rechnung, nicht die Rechnung selbst.",{"type":142,"content":369},[370],"Zwei Vorbehalte gelten. Der neuere Tokenizer, den Claude 4.7 und neuer nutzen, erzeugt für denselben Text etwa 30 % mehr Tokens, deshalb zähle die Spec in Tokens, nicht in Wörtern. Wichtiger ist jedoch die Aufmerksamkeit. Anthropics Leitfaden sagt, dass die Leistung nachlässt, wenn sich das Kontextfenster füllt, und dass das Modell frühere Anweisungen vergessen kann. Halte die Spec auf Kriterien, Randbedingungen und Nicht-Ziele, und lass die Tests die Details tragen.",{"type":264,"head":372,"rows":379},[373,375,377],[374],"Änderung",[376],"Vorgehen",[378],"Warum",[380,387,394,401,408],[381,383,385],[382],"Ein Tippfehler, eine Logzeile oder ein Umbenennen",[384],"Direkt prompten, ohne Plan",[386],"Der ganze Diff passt in einen Satz",[388,390,392],[389],"Ein Bug mit bekannter Ursache",[391],"Erst ein fehlschlagender Test, dann der Fix",[393],"Der fehlschlagende Test ist die kleinste nützliche Spec",[395,397,399],[396],"Ein Feature innerhalb eines Moduls",[398],"Kurzer Plan im Plan-Modus, am Ende geprüft",[400],"Das Review ist günstig, und die Planung fängt trotzdem einen falschen Ansatz ab",[402,404,406],[403],"Eine Änderung über mehrere Module oder ein riskanter Pfad wie Zahlung oder Auth",[405],"Volle Spec, Plan, Tasks und Nachweise",[407],"Nacharbeit kostet mehr als der Papierkram",[409,411,413],[410],"Code, den andere monatelang erweitern",[412],"Eine Spec, die als Dokumentation gepflegt wird",[414],"Eine veraltete Spec führt mehr in die Irre als gar keine",{"type":142,"content":416},[417],"Böckeler fand, dass Spec Kit bei einem mittelgroßen Feature „für die Größe des Problems wie Overkill“ wirkte, und sie argumentierte, ein brauchbares Werkzeug müsse mehrere Arbeitsgrößen unterstützen. Der Prozess sollte sich nach der Größe der Änderung richten, nicht nach dem Tool, das du schon hast.",{"type":149,"level":150,"id":132,"text":133},{"type":155,"ordered":156,"items":420},[421,426,431],[422,425],{"tag":160,"children":423},[424],"Papierkram ohne Review."," Böckeler stellte fest, dass Spec Kit „eine Menge Markdown-Dateien zum Prüfen“ erzeugt, und sie prüft lieber Code als diese Dateien. Liest niemand die Spec, ist sie Theater.",[427,430],{"tag":160,"children":428},[429],"Specs, die veralten."," Böckeler unterscheidet Spec-first, Spec-anchored (die Spec bleibt bestehen und pflegt das Feature) und Spec-as-source. Zwei der drei Tools, die sie prüfte, sind Spec-first, und viele Ansätze bleiben unklar darin, wie die Spec über die Zeit aktuell gehalten wird.",[432,435],{"tag":160,"children":433},[434],"Überkomplizierung."," Thoughtworks setzte Spec-driven Development im November 2025 in den Ring Assess und hielt fest, die Abläufe blieben „aufwendig und meinungsstark“. Die Firma warnte, dass wir „vielleicht eine bittere Lektion neu lernen“.",{"type":142,"content":437},[438],"Eine Spec macht den Agenten nicht richtig. Sie macht Fehler früher sichtbar und gibt dem Reviewer etwas zum Prüfen. Böckeler sah auch diese Grenze: In Tessl liefert die wiederholte Codeerzeugung aus derselben Spec nicht dasselbe Ergebnis, es gibt also Nicht-Determinismus. Die ehrliche Zusammenfassung lautet: Spec-driven Development ist Disziplin für die Teile einer Änderung, die schiefgehen können, und Overhead für den Rest.",{"type":149,"level":150,"id":135,"text":136},{"type":142,"content":441},[442,443,447,448,452],"Dafür brauchst du kein bestimmtes Tool. Eine Markdown-Datei, eine Checkliste und eine Testsuite reichen für den Anfang. Mein Artikel über ",{"tag":252,"to":444,"children":445},"\u002Fblog\u002Fcoding-agent-skills-workflow",[446],"Coding-Agent-Skills"," zeigt dieselbe Disziplin an einem Bug, vom Report bis zum Pull Request, und meine Notiz zu ",{"tag":252,"to":449,"children":450},"\u002Fblog\u002Fhuman-in-the-loop-ai-agents",[451],"Human in the Loop bei Agenten"," beschreibt, wo die Freigabepunkte hingehören.",{"type":155,"ordered":454,"items":455},true,[456,458,460,462,464,466],[457],"Wähle diese Woche eine Änderung, die zwei oder mehr Module berührt, und schreibe ihre Spec mit Akzeptanzkriterien, bevor du den Agenten öffnest.",[459],"Formuliere jedes Kriterium als einen Satz in fester Form, etwa EARS, und gib ihm eine ID, auf die Plan und Tasks verweisen können.",[461],"Bitte um einen Plan, lies ihn zehn Minuten lang und ändere die Dateiliste und die Reihenfolge der Arbeit, bevor Code entsteht.",[463],"Mach jeden Task-Haken von einem Nachweis in der Änderung abhängig: einem Testnamen, einem Befehl mit seinem Exit-Code oder einem Screenshot.",[465],"Lösche die Teile der Spec, die der Code nicht mehr abbildet, statt sie driften zu lassen.",[467],"Bewerte das Ergebnis an Nacharbeit und Prüfzeit, nicht daran, wie schnell der erste Entwurf da war. Die METR-Ergebnisse zeigen, wie unzuverlässig dieses Gefühl ist.",{"type":149,"level":150,"id":138,"text":139},{"type":155,"ordered":454,"items":470},[471,475,478,481,484,487,490,493,496,499,502,505,508,511,514],[472],{"tag":473,"href":38,"children":474},"a",[37],[476],{"tag":473,"href":28,"children":477},[40],[479],{"tag":473,"href":43,"children":480},[42],[482],{"tag":473,"href":46,"children":483},[45],[485],{"tag":473,"href":49,"children":486},[48],[488],{"tag":473,"href":31,"children":489},[51],[491],{"tag":473,"href":54,"children":492},[53],[494],{"tag":473,"href":57,"children":495},[56],[497],{"tag":473,"href":60,"children":498},[59],[500],{"tag":473,"href":63,"children":501},[62],[503],{"tag":473,"href":66,"children":504},[65],[506],{"tag":473,"href":69,"children":507},[68],[509],{"tag":473,"href":26,"children":510},[71],[512],{"tag":473,"href":74,"children":513},[73],[515],{"tag":473,"href":77,"children":516},[76],[518,599,654,733],{"slug":519,"published":520,"minutes":6,"category":7,"tags":521,"keywords":527,"about":536,"sources":546,"cover":593,"og":594,"expertise":80,"locales":595,"lang":83,"title":596,"description":597,"coverAlt":598},"ai-assisted-development-economics","2026-10-01",[522,523,524,525,526],"AI coding agents","Developer productivity","Engineering economics","Team cost","GDPR",[528,529,530,531,532,533,534,535],"AI coding agents cost","developer productivity AI study","METR AI developer slowdown","AI coding break-even cost model","one senior engineer vs team","AI coding agent vs agency","DORA AI adoption report","GDPR processor contract AI coding tools",[537,540,543],{"name":538,"url":539},"General Data Protection Regulation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGeneral_Data_Protection_Regulation",{"name":541,"url":542},"Randomized controlled trial","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRandomized_controlled_trial",{"name":544,"url":545},"Bus factor","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBus_factor",[547,549,552,554,557,560,563,566,569,572,575,578,581,584,587,590],{"title":548,"url":63},"METR: early-2025 AI and experienced open-source developers",{"title":550,"url":551},"Becker et al.: arXiv 2507.09089","https:\u002F\u002Farxiv.org\u002Fabs\u002F2507.09089",{"title":553,"url":66},"METR: developer productivity experiment design, February 2026",{"title":555,"url":556},"Peng et al.: GitHub Copilot controlled experiment, arXiv 2302.06590","https:\u002F\u002Farxiv.org\u002Fhtml\u002F2302.06590v1",{"title":558,"url":559},"Cui et al.: three field experiments with software developers","https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002F?p=1148213",{"title":561,"url":562},"DORA: State of AI-assisted Software Development 2025","https:\u002F\u002Fresearch.google\u002Fpubs\u002Fdora-2025-state-of-ai-assisted-software-development-report\u002F",{"title":564,"url":565},"Google Cloud: highlights from the 2024 DORA report","https:\u002F\u002Fcloud.google.com\u002Fblog\u002Fproducts\u002Fdevops-sre\u002Fannouncing-the-2024-dora-report",{"title":567,"url":568},"Stack Overflow: Developer Survey 2025, AI","https:\u002F\u002Fsurvey.stackoverflow.co\u002F2025\u002Fai",{"title":570,"url":571},"Ziftci et al.: Migrating Code At Scale With LLMs At Google","https:\u002F\u002Farxiv.org\u002Fabs\u002F2504.09691",{"title":573,"url":574},"Alshahwan et al.: Automated Unit Test Improvement using Large Language Models at Meta","https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.09171",{"title":576,"url":577},"GitClear: AI Copilot Code Quality: 2025 Look Back at 12 Months of Data","https:\u002F\u002Fwww.gitclear.com\u002Fai_assistant_code_quality_2025_research",{"title":579,"url":580},"GDPR, Regulation (EU) 2016\u002F679, Article 28","https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2016\u002F679\u002Foj\u002Feng",{"title":582,"url":583},"Anthropic: Commercial Terms of Service","https:\u002F\u002Fwww.anthropic.com\u002Flegal\u002Fcommercial-terms",{"title":585,"url":586},"Claude: pricing","https:\u002F\u002Fclaude.com\u002Fpricing",{"title":588,"url":589},"Claude Platform: data residency","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fdata-residency",{"title":591,"url":592},"GitHub Copilot: plans and pricing","https:\u002F\u002Fgithub.com\u002Ffeatures\u002Fcopilot\u002Fplans","\u002Fimages\u002Fblog\u002Fai-assisted-development-economics\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fai-assisted-development-economics\u002Fog.jpg",[82,83,84],"Ein Senior mit Coding-Agenten gegen ein Team: was die Belege sagen","Die Studien von METR, DORA, Microsoft und GitHub zu KI-Coding-Tools: was sie nicht beweisen, und ein Kostenmodell für einen Senior gegen ein Team oder eine Agentur.","Titelbild zur KI-Coding-Ökonomie: eine Pipeline vom Entwurf bis zur Auslieferung, in der Agenten das Schreiben beschleunigen und Review- und Qualitätskosten einen Teil des Gewinns zurückholen.",{"slug":600,"published":601,"minutes":602,"category":7,"tags":603,"keywords":609,"about":619,"sources":629,"cover":648,"og":649,"expertise":80,"locales":650,"lang":83,"title":651,"description":652,"coverAlt":653},"mcp-tool-design-lessons-jira-server","2026-09-18",10,[604,605,606,607,608],"MCP","Tool design","Context engineering","Jira","Agents",[610,611,612,613,614,615,616,617,618],"MCP tool design","MCP best practices","MCP tool descriptions","agent tool selection","MCP context bloat","how many tools should an MCP server have","MCP tool definition token cost","MCP error handling isError","Jira MCP server",[620,623,626],{"name":621,"url":622},"Model Context Protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FModel_Context_Protocol",{"name":624,"url":625},"Jira (software)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FJira_(software)",{"name":627,"url":628},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",[630,633,636,639,642,645],{"title":631,"url":632},"Writing effective tools for agents – with agents (Anthropic)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fwriting-tools-for-agents",{"title":634,"url":635},"Introducing advanced tool use on the Claude Developer Platform (Anthropic)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fadvanced-tool-use",{"title":637,"url":638},"Code execution with MCP (Anthropic)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fcode-execution-with-mcp",{"title":640,"url":641},"MCP vs CLI: context window cost (Blocks.ai)","https:\u002F\u002Fblocks.ai\u002Fblog\u002Fmcp-vs-cli-context-window-cost",{"title":643,"url":644},"Demystifying evals for AI agents (Anthropic)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fdemystifying-evals-for-ai-agents",{"title":646,"url":647},"MCP 2026-07-28 specification: Tools","https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2026-07-28\u002Fserver\u002Ftools","\u002Fimages\u002Fblog\u002Fmcp-tool-design-lessons-jira-server\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fmcp-tool-design-lessons-jira-server\u002Fog.jpg",[82,83,84],"MCP-Tool-Design: Lehren aus einem Jira-Server mit 20 Tools","MCP-Tool-Design für Agenten: Token-Kosten der Tool-Definitionen, wann man Tools zusammenlegt, Benennung, knappe Ausgaben und ein Auswahl-Eval.","Netzwerkdiagramm mit einem Jira-MCP-Server als Nabe und fünf Satelliten: Suche, Anlegen, Transition, Kommentare und Testläufe",{"slug":655,"published":656,"minutes":657,"category":7,"tags":658,"keywords":661,"about":672,"sources":678,"cover":727,"og":728,"expertise":80,"locales":729,"lang":83,"title":730,"description":731,"coverAlt":732},"ai-agent-memory-design","2026-09-10",13,[659,606,660,526],"AI agent memory","Memory poisoning",[662,663,664,665,666,667,668,669,670,671],"AI agent memory design","long-term memory for AI agents","episodic semantic procedural memory LLM","agent memory architecture","ChatGPT memory vs Claude memory","Claude memory tool","AI memory poisoning","LLM context compaction","AI agent memory GDPR","short-term vs long-term memory agents",[673,674,675],{"name":627,"url":628},{"name":538,"url":539},{"name":676,"url":677},"Prompt injection","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPrompt_injection",[679,682,685,688,691,694,697,700,703,706,709,712,715,718,721,724],{"title":680,"url":681},"Anthropic docs: Memory tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fmemory-tool",{"title":683,"url":684},"Anthropic docs: Context editing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcontext-editing",{"title":686,"url":687},"Anthropic Engineering: Effective context engineering for AI agents","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents",{"title":689,"url":690},"Sumers et al.: Cognitive Architectures for Language Agents (CoALA)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2309.02427",{"title":692,"url":693},"Packer et al.: MemGPT, Towards LLMs as Operating Systems","https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.08560",{"title":695,"url":696},"Park et al.: Generative Agents, Interactive Simulacra of Human Behavior","https:\u002F\u002Farxiv.org\u002Fabs\u002F2304.03442",{"title":698,"url":699},"Unit 42: When AI Remembers Too Much, persistent behaviors in agents memory","https:\u002F\u002Funit42.paloaltonetworks.com\u002Findirect-prompt-injection-poisons-ai-longterm-memory\u002F",{"title":701,"url":702},"From Untrusted Input to Trusted Memory: A Systematic Study of Memory Poisoning Attacks in LLM Agents (preprint)","https:\u002F\u002Farxiv.org\u002Fhtml\u002F2606.04329v1",{"title":704,"url":705},"The Hacker News: ChatGPT macOS flaw could have enabled long-term spyware via memory function","https:\u002F\u002Fthehackernews.com\u002F2024\u002F09\u002Fchatgpt-macos-flaw-couldve-enabled-long.html",{"title":707,"url":708},"Vectorize: OWASP ASI06, Memory and Context Poisoning explained","https:\u002F\u002Fvectorize.io\u002Farticles\u002Fowasp-asi06",{"title":710,"url":711},"Claude Help Center: Use chat search and memory to build on previous context","https:\u002F\u002Fsupport.claude.com\u002Fen\u002Farticles\u002F11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context",{"title":713,"url":714},"OpenAI Help Center: Memory in ChatGPT","https:\u002F\u002Fhelp.openai.com\u002Fen\u002Farticles\u002F8590148-memory-faq",{"title":716,"url":717},"OpenAI Help Center: Dots privacy, security, and safety FAQs","https:\u002F\u002Fhelp.openai.com\u002Fen\u002Farticles\u002F20001529-dots-privacy-security-and-safety-faqs",{"title":719,"url":720},"Flavio Copes: A deep dive into OpenAI dots (quotes the dots documentation on memory)","https:\u002F\u002Fflaviocopes.com\u002Fopenai-dots\u002F",{"title":722,"url":723},"GDPR Article 5: Principles relating to processing of personal data","https:\u002F\u002Fgdpr-info.eu\u002Fart-5-gdpr\u002F",{"title":725,"url":726},"GDPR Article 17: Right to erasure","https:\u002F\u002Fgdpr-info.eu\u002Fart-17-gdpr\u002F","\u002Fimages\u002Fblog\u002Fai-agent-memory-design\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fai-agent-memory-design\u002Fog.jpg",[82,83,84],"Memory für KI-Agenten entwerfen: Ebenen, Schreibregeln, Poisoning und DSGVO","So entwirfst du das Gedächtnis von KI-Agenten: Kontext, Session, Langzeit, was du speicherst und nie speicherst, Retrieval, Compaction, Poisoning, DSGVO.","Diagramm: verschachtelte Gedächtnisebenen eines KI-Agenten, vom Arbeitskontext über den Session-Zustand bis zum episodischen und semantischen Langzeitgedächtnis.",{"slug":734,"published":735,"minutes":736,"category":7,"tags":737,"keywords":742,"about":752,"sources":761,"cover":786,"og":787,"expertise":80,"locales":788,"lang":83,"title":789,"description":790,"coverAlt":791},"harness-engineering-coding-agents","2026-09-04",8,[738,10,739,740,741],"Harness engineering","Code quality","Mutation testing","TDD",[743,744,745,746,747,748,749,750,751],"harness engineering","harness engineering coding agents","AI code quality","coding agent guardrails","mutation testing AI generated tests","red\u002Fgreen TDD with AI agents","guides and sensors coding agents","how to make AI agent pull requests mergeable","can I trust tests written by AI",[753,755,758],{"name":740,"url":754},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMutation_testing",{"name":756,"url":757},"Test-driven development","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTest-driven_development",{"name":759,"url":760},"Static program analysis","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FStatic_program_analysis",[762,765,768,771,774,777,780,783],{"title":763,"url":764},"Birgitta Böckeler: Harness engineering for coding agent users (Apr 2026)","https:\u002F\u002Fmartinfowler.com\u002Farticles\u002Fharness-engineering.html",{"title":766,"url":767},"Birgitta Böckeler: Maintainability sensors for coding agents (May 2026)","https:\u002F\u002Fmartinfowler.com\u002Farticles\u002Fsensors-for-coding-agents.html",{"title":769,"url":770},"Simon Willison: Agentic Engineering Patterns","https:\u002F\u002Fsimonwillison.net\u002Fguides\u002Fagentic-engineering-patterns\u002F",{"title":772,"url":773},"Simon Willison: First run the tests","https:\u002F\u002Fsimonwillison.net\u002Fguides\u002Fagentic-engineering-patterns\u002Ffirst-run-the-tests\u002F",{"title":775,"url":776},"Anthropic: Effective harnesses for long-running agents (Nov 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents",{"title":778,"url":779},"Claude Code docs: How Claude remembers your project","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fmemory",{"title":781,"url":782},"Stryker Mutator documentation","https:\u002F\u002Fstryker-mutator.io\u002Fdocs\u002F",{"title":784,"url":785},"Infection: command line options","https:\u002F\u002Finfection.github.io\u002Fguide\u002Fcommand-line-options.html","\u002Fimages\u002Fblog\u002Fharness-engineering-coding-agents\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fharness-engineering-coding-agents\u002Fog.jpg",[82,83,84],"Harness Engineering: Guides und Sensors, die Agent-PRs mergebar machen","Harness Engineering für Coding-Agenten: Guides und Sensors, wo jede Prüfung laufen soll, Rot\u002FGrün-TDD und Mutationstests für die Tests des Agenten.","Konzentrische Ringe um das Modell eines Coding-Agenten: Verhalten, Architekturtauglichkeit und Wartbarkeit, von außen nach innen",1791636873422]