• v4.6.0 d34924d640

    v4.6.0
    CI / verify (push) Successful in 58s
    Release / release (push) Successful in 38s
    Stable

    torben released this 2026-09-04 13:33:22 +00:00 | 62 commits to main since this release

    4.6.0 - 2026-09-04 - stack-dev/stack-close skill split, publish stack-machinery note, model-selection fix (#47 Block 2)

    Author: Torben Nehmer

    • stack-dev/stack-close skill split, publish stack-machinery note, model-selection fix (#47 Block 2)

    Block 2 aus #47 (Vorschlag E, am 2026-09-04 entschieden): die ungeprüfte Schlussphase einer
    Stack-Sitzung - Issue-Body-Rewrite, docs/-Veralterung, Changelog-Prosa - hatte bisher keinen
    eigenen Haltepunkt, sondern einen Prosa-Break in stack-dev Schritt 6. Der ist zweimal
    hintereinander verschluckt worden (#42, #30), beide Male mit echtem Fund im nachgeholten
    Durchgang. Ein dritter Prosa-Haltepunkt hätte dieselbe Wette verloren, die
    docs/why-gates-are-code.md für Gates schon verliert - also keine Prosa-Lösung mehr, sondern ein
    struktureller Schnitt.

    Neuer Skill stack-close, dev-only wie stack-dev. stack-dev endet nach tools/wikitool publish mit einem Stop statt mit einem sechsten Schritt; die Schlussphase existiert nur noch als
    eigener Skill, den eine Sitzung aufrufen muss - es gibt keinen „nächsten Schritt" mehr, an dem
    vorbei sie rutschen könnte. stack-close trägt drei Dinge: den Modell-Rückwechsel-Hinweis (wie
    zuvor), die Body-Rewrite-Disziplin aus issue-tracking.md Schritte 2-3 und 7, und neu die
    Handover-Pflicht über die ganze Sitzung: benannt wird das Modell für Design/Versionsstelle
    (Schritt 3), für die mechanische Mitte, und für diese Schlussphase - alle drei, auch wenn sie
    identisch sind. Eine Handover-Zeile, die nur eine billige Schlussphase meldet, schweigt genau
    dann, wenn die ebenso ungeprüfte Design-Phase auch billig lief und niemand dort gewechselt hat.

    Ein Agenten-Zuschnitt (Schlussphase als eigener Subagent mit eigenem Modell) wurde geprüft und
    verworfen: ein Fork erbt in Claude Code zwingend das Elternmodell, ein frischer Subagent den
    Sitzungskontext nicht - die Kombination, die der Zuschnitt bräuchte, gibt es nicht, und selbst
    wenn: der Input der Schlussphase ist das akkumulierte Sitzungswissen, das ein kalter Agent aus
    Diff und Issue neu ableiten müsste. Volle Begründung im Body von #47.

    instructions/claude-code-model-selection.md korrigiert, im dist-strip-Block: die
    Übersicht „stack-dev Schritt 3 und 6" ist falsch geworden, seit Schritt 6 nicht mehr existiert.
    Sie benennt jetzt beide Haltepunkte an ihrem tatsächlichen Ort - Schritt 3 in stack-dev,
    der zweite am Anfang von stack-close.

    stack-dev Schritt 3 ehrlicher formuliert (Vorschlag C): nicht mehr „ab hier alles
    mechanisch", sondern mit benannter Ausnahme - Changelog-Prosa (Schritt 4), eine berührte
    docs/-Seite, neue Menschendoku, der Prosa-Anteil einer Instruction. Dazu die Einschränkung aus
    #30: „durch Tests abgedeckt" gilt nur für das, was die Tests treffen - zwei
    datenvernichtende Bugs in upstream merge liefen an einem grünen pytest/docs verify/instructions verify/CI vorbei, weil kein Test den Fall traf, nicht weil ein
    schwächeres Modell schlechteren Code für den getesteten Fall geschrieben hätte.

    Neu: tools/wikitool publish selbst erinnert an die Phasengrenze. Berührt das Changeset
    tools/, types/, instructions/, AGENTS.md oder ein <stage>/CONTRACT.md - derselbe
    Umfang, den ein Versions-Bump selbst abdeckt -, druckt publish nach der Erfolgsmeldung eine
    Zeile, dass die folgende Phase von keinem der drei Checks abgedeckt ist. Kein Gate, keine
    Änderung am Exit-Code, für eine gewöhnliche Content-Publish stumm; harness- und
    instanzneutral formuliert, ohne jede Erwähnung eines Trackers, weil publish von jedem
    Skill genutzt wird, nicht nur von stack-dev. git_publish.touches_stack_machinery() plus
    vier neue Tests (test_git_publish.py): zwei für die reine Klassifikationsfunktion
    (positiv/negativ), zwei Integrationstests gegen einen echten Publish - die Notiz erscheint genau
    einmal bei einer instructions/-Änderung und bleibt aus bei einer gewöhnlichen kb/-Änderung.
    tools/CONTRACT.mds publish-Zeile trägt die Kurzfassung, absichtlich ohne den Dateinamen
    version-parts.md zu nennen - die Datei liegt unter instructions/dev/ und würde in einer
    ausgelieferten Instanz ins Leere zeigen, während tools/CONTRACT.md selbst ausgeliefert wird.

    Verifiziert: tools/wikitool instructions sync (7 Skills, stack-close neu), tools/wikitool docs verify, tools/wikitool instructions verify, .venv/bin/python -m pytest -q (967
    passed, 4 davon neu).

    #47 bleibt offen für Block 3 (DEVELOPMENT.md in STAGE_READMES, veraltete Release-Notes).

    Downloads