@renoxar/koolie 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (693) hide show
  1. package/.gitattributes +16 -0
  2. package/.gitignore +51 -0
  3. package/.koolie/QUELLREPOSITORIUM.md +18 -0
  4. package/.koolie/core/CHANGELOG.md +11832 -0
  5. package/.koolie/core/LICENSE +674 -0
  6. package/.koolie/core/LICENSE-HINWEIS.md +98 -0
  7. package/.koolie/core/OWNERS.md +36 -0
  8. package/.koolie/core/VERSION +1 -0
  9. package/.koolie/core/banner.py +397 -0
  10. package/.koolie/core/build/README.md +34 -0
  11. package/.koolie/core/build/assemble.py +354 -0
  12. package/.koolie/core/build/build-docx.py +194 -0
  13. package/.koolie/core/build/doc/00-kopf.md +18 -0
  14. package/.koolie/core/build/doc/01-executive-summary.md +24 -0
  15. package/.koolie/core/build/doc/02-zielbild.md +13 -0
  16. package/.koolie/core/build/doc/03-ziele-nichtziele.md +28 -0
  17. package/.koolie/core/build/doc/04-geltungsbereich.md +25 -0
  18. package/.koolie/core/build/doc/05-glossar.md +47 -0
  19. package/.koolie/core/build/doc/06-leitprinzipien.md +5 -0
  20. package/.koolie/core/build/doc/07-architektur.md +60 -0
  21. package/.koolie/core/build/doc/07a-abbildungsschicht.md +66 -0
  22. package/.koolie/core/build/doc/08-trennung.md +24 -0
  23. package/.koolie/core/build/doc/09-betriebsmodi.md +18 -0
  24. package/.koolie/core/build/doc/10-arbeitsablauf.md +5 -0
  25. package/.koolie/core/build/doc/11-datenschutz.md +5 -0
  26. package/.koolie/core/build/doc/12-sicherheit.md +5 -0
  27. package/.koolie/core/build/doc/13-risiko.md +5 -0
  28. package/.koolie/core/build/doc/14-rollen.md +9 -0
  29. package/.koolie/core/build/doc/15-referenzstruktur.md +124 -0
  30. package/.koolie/core/build/doc/16-agentenanweisung.md +8 -0
  31. package/.koolie/core/build/doc/17-overlay.md +29 -0
  32. package/.koolie/core/build/doc/18-skill-standard.md +5 -0
  33. package/.koolie/core/build/doc/19-skill-template.md +5 -0
  34. package/.koolie/core/build/doc/20-referenz-skills.md +70 -0
  35. package/.koolie/core/build/doc/21-prompts.md +53 -0
  36. package/.koolie/core/build/doc/22-checklisten.md +49 -0
  37. package/.koolie/core/build/doc/23-entscheidungsbaeume.md +29 -0
  38. package/.koolie/core/build/doc/24-onboarding.md +33 -0
  39. package/.koolie/core/build/doc/25-governance.md +35 -0
  40. package/.koolie/core/build/doc/26-qs-test.md +9 -0
  41. package/.koolie/core/build/doc/27-pilot.md +13 -0
  42. package/.koolie/core/build/doc/28-uebernahme.md +5 -0
  43. package/.koolie/core/build/doc/29-grenzen.md +87 -0
  44. package/.koolie/core/build/doc/30-roadmap.md +5 -0
  45. package/.koolie/core/build/doc/31-anhaenge.md +151 -0
  46. package/.koolie/core/build/doc/32-abschluss.md +92 -0
  47. package/.koolie/core/build/ref-a4.docx +0 -0
  48. package/.koolie/core/checklists/01-preflight.md +54 -0
  49. package/.koolie/core/checklists/02-privacy-context.md +51 -0
  50. package/.koolie/core/checklists/03-before-code-change.md +51 -0
  51. package/.koolie/core/checklists/04-review-ai-code.md +58 -0
  52. package/.koolie/core/checklists/05-testing.md +48 -0
  53. package/.koolie/core/checklists/06-security.md +50 -0
  54. package/.koolie/core/checklists/07-new-dependency.md +57 -0
  55. package/.koolie/core/checklists/08-merge-request.md +47 -0
  56. package/.koolie/core/checklists/09-onboarding.md +52 -0
  57. package/.koolie/core/checklists/10-project-adoption.md +74 -0
  58. package/.koolie/core/checklists/11-framework-release.md +71 -0
  59. package/.koolie/core/checklists/README.md +28 -0
  60. package/.koolie/core/clientmap.py +1358 -0
  61. package/.koolie/core/clients/README.md +113 -0
  62. package/.koolie/core/clients/_template/CLIENT_PACK.md +197 -0
  63. package/.koolie/core/clients/claude-code/CLIENT_PACK.md +383 -0
  64. package/.koolie/core/clients/claude-code/manifest.json +232 -0
  65. package/.koolie/core/clients/claude-code/root-template/.claude/README.md +127 -0
  66. package/.koolie/core/clients/cursor/CLIENT_PACK.md +229 -0
  67. package/.koolie/core/clients/cursor/manifest.json +330 -0
  68. package/.koolie/core/clients/cursor/root-template/.cursor/README.md +36 -0
  69. package/.koolie/core/clients/devin-desktop/CLIENT_PACK.md +251 -0
  70. package/.koolie/core/clients/devin-desktop/manifest.json +163 -0
  71. package/.koolie/core/clients/devin-desktop/root-template/.devin/README.md +79 -0
  72. package/.koolie/core/clients/kiro/CLIENT_PACK.md +223 -0
  73. package/.koolie/core/clients/kiro/manifest.json +300 -0
  74. package/.koolie/core/clients/kiro/root-template/.kiro/README.md +37 -0
  75. package/.koolie/core/clients/openai-codex/CLIENT_PACK.md +257 -0
  76. package/.koolie/core/clients/openai-codex/manifest.json +208 -0
  77. package/.koolie/core/clients/openai-codex/root-template/.codex/README.md +35 -0
  78. package/.koolie/core/decision-trees/01-context-allowed.md +46 -0
  79. package/.koolie/core/decision-trees/02-may-ai-do-task.md +47 -0
  80. package/.koolie/core/decision-trees/03-analyze-or-modify.md +50 -0
  81. package/.koolie/core/decision-trees/04-required-review.md +49 -0
  82. package/.koolie/core/decision-trees/05-stop-or-escalate.md +47 -0
  83. package/.koolie/core/decision-trees/06-rule-placement.md +58 -0
  84. package/.koolie/core/decision-trees/README.md +14 -0
  85. package/.koolie/core/docs/ADOPTION_GUIDE.md +582 -0
  86. package/.koolie/core/docs/DOCUMENTATION_STANDARD.md +91 -0
  87. package/.koolie/core/docs/PLACEHOLDER_REGISTRY.md +79 -0
  88. package/.koolie/core/docs/ROADMAP.md +848 -0
  89. package/.koolie/core/docs/RUNTIME_GLOSSARY.md +113 -0
  90. package/.koolie/core/examples/README.md +11 -0
  91. package/.koolie/core/examples/example-ergebnisbericht.md +31 -0
  92. package/.koolie/core/examples/example-mr-description.md +31 -0
  93. package/.koolie/core/examples/example-overlay-runtime.md +48 -0
  94. package/.koolie/core/framework/core/00-principles.md +93 -0
  95. package/.koolie/core/framework/core/01-governance.md +58 -0
  96. package/.koolie/core/framework/core/02-privacy.md +141 -0
  97. package/.koolie/core/framework/core/03-security.md +86 -0
  98. package/.koolie/core/framework/core/04-quality.md +48 -0
  99. package/.koolie/core/framework/core/05-working-model.md +199 -0
  100. package/.koolie/core/framework/core/06-prompting-rules.md +51 -0
  101. package/.koolie/core/framework/core/07-review-rules.md +52 -0
  102. package/.koolie/core/framework/core/08-skill-conventions.md +115 -0
  103. package/.koolie/core/framework/core/09-risk-model.md +87 -0
  104. package/.koolie/core/framework/core/10-error-escalation.md +53 -0
  105. package/.koolie/core/framework/org-policies/MAPPING_CLASSIFICATION.md +16 -0
  106. package/.koolie/core/framework/org-policies/README.md +29 -0
  107. package/.koolie/core/framework/overlay-patterns/general/documents/branching-strategy/muster-general.md +43 -0
  108. package/.koolie/core/framework/overlay-patterns/general/documents/coding-guidelines/muster-general.md +82 -0
  109. package/.koolie/core/framework/overlay-patterns/general/documents/definition-of-done/muster-general.md +52 -0
  110. package/.koolie/core/framework/overlay-patterns/general/documents/definition-of-ready/muster-general.md +54 -0
  111. package/.koolie/core/framework/overlay-patterns/general/documents/quality/muster-general.md +59 -0
  112. package/.koolie/core/framework/overlay-patterns/general/documents/security/muster-general.md +52 -0
  113. package/.koolie/core/framework/overlay-patterns/general.md +150 -0
  114. package/.koolie/core/framework/role-packs/README.md +63 -0
  115. package/.koolie/core/framework/role-packs/_template/ROLE_PACK.md +58 -0
  116. package/.koolie/core/framework/role-packs/requirements-engineering/ROLE_PACK.md +158 -0
  117. package/.koolie/core/framework/role-packs/requirements-engineering/runtime/30-role-requirements-engineering.md +88 -0
  118. package/.koolie/core/framework/role-packs/requirements-engineering/skills/role-re-ticket/CHANGELOG.md +10 -0
  119. package/.koolie/core/framework/role-packs/requirements-engineering/skills/role-re-ticket/EXAMPLES.md +148 -0
  120. package/.koolie/core/framework/role-packs/requirements-engineering/skills/role-re-ticket/SKILL.md +195 -0
  121. package/.koolie/core/framework/role-packs/requirements-engineering/skills/role-re-ticket/TESTS.md +22 -0
  122. package/.koolie/core/framework/role-packs/software-development/ROLE_PACK.md +95 -0
  123. package/.koolie/core/framework/role-packs/software-development/runtime/30-role-software-development.md +26 -0
  124. package/.koolie/core/framework/runtime/agents/fw-reviewer.md +34 -0
  125. package/.koolie/core/framework/runtime/client-settings.json +3 -0
  126. package/.koolie/core/framework/runtime/hooks.json +20 -0
  127. package/.koolie/core/framework/runtime/mcp-config.example.json +4 -0
  128. package/.koolie/core/framework/runtime/permissions.json +106 -0
  129. package/.koolie/core/framework/runtime/root-instruction-local.example.md +19 -0
  130. package/.koolie/core/framework/runtime/root-instruction.md +116 -0
  131. package/.koolie/core/framework/runtime/rules/00-framework-core.md +49 -0
  132. package/.koolie/core/framework/runtime/rules/10-privacy-security.md +49 -0
  133. package/.koolie/core/framework/runtime/rules/15-development-rules.md +41 -0
  134. package/.koolie/core/framework/runtime/rules/16-plan-spezifikation.md +32 -0
  135. package/.koolie/core/framework/runtime/rules/20-project-overlay.md +60 -0
  136. package/.koolie/core/framework/skills/fw-bugfix-prepare/CHANGELOG.md +14 -0
  137. package/.koolie/core/framework/skills/fw-bugfix-prepare/EXAMPLES.md +57 -0
  138. package/.koolie/core/framework/skills/fw-bugfix-prepare/SKILL.md +177 -0
  139. package/.koolie/core/framework/skills/fw-bugfix-prepare/TESTS.md +15 -0
  140. package/.koolie/core/framework/skills/fw-change-analyze/CHANGELOG.md +12 -0
  141. package/.koolie/core/framework/skills/fw-change-analyze/EXAMPLES.md +66 -0
  142. package/.koolie/core/framework/skills/fw-change-analyze/SKILL.md +167 -0
  143. package/.koolie/core/framework/skills/fw-change-analyze/TESTS.md +16 -0
  144. package/.koolie/core/framework/skills/fw-change-small/CHANGELOG.md +13 -0
  145. package/.koolie/core/framework/skills/fw-change-small/EXAMPLES.md +68 -0
  146. package/.koolie/core/framework/skills/fw-change-small/SKILL.md +175 -0
  147. package/.koolie/core/framework/skills/fw-change-small/TESTS.md +13 -0
  148. package/.koolie/core/framework/skills/fw-code-explain/CHANGELOG.md +11 -0
  149. package/.koolie/core/framework/skills/fw-code-explain/EXAMPLES.md +61 -0
  150. package/.koolie/core/framework/skills/fw-code-explain/SKILL.md +163 -0
  151. package/.koolie/core/framework/skills/fw-code-explain/TESTS.md +11 -0
  152. package/.koolie/core/framework/skills/fw-docs-update/CHANGELOG.md +10 -0
  153. package/.koolie/core/framework/skills/fw-docs-update/EXAMPLES.md +59 -0
  154. package/.koolie/core/framework/skills/fw-docs-update/SKILL.md +160 -0
  155. package/.koolie/core/framework/skills/fw-docs-update/TESTS.md +12 -0
  156. package/.koolie/core/framework/skills/fw-error-analyze/CHANGELOG.md +10 -0
  157. package/.koolie/core/framework/skills/fw-error-analyze/EXAMPLES.md +67 -0
  158. package/.koolie/core/framework/skills/fw-error-analyze/SKILL.md +160 -0
  159. package/.koolie/core/framework/skills/fw-error-analyze/TESTS.md +12 -0
  160. package/.koolie/core/framework/skills/fw-mr-description/CHANGELOG.md +12 -0
  161. package/.koolie/core/framework/skills/fw-mr-description/EXAMPLES.md +69 -0
  162. package/.koolie/core/framework/skills/fw-mr-description/SKILL.md +170 -0
  163. package/.koolie/core/framework/skills/fw-mr-description/TESTS.md +12 -0
  164. package/.koolie/core/framework/skills/fw-overlay-pflege/CHANGELOG.md +7 -0
  165. package/.koolie/core/framework/skills/fw-overlay-pflege/EXAMPLES.md +48 -0
  166. package/.koolie/core/framework/skills/fw-overlay-pflege/SKILL.md +147 -0
  167. package/.koolie/core/framework/skills/fw-overlay-pflege/TESTS.md +13 -0
  168. package/.koolie/core/framework/skills/fw-plan/CHANGELOG.md +14 -0
  169. package/.koolie/core/framework/skills/fw-plan/EXAMPLES.md +69 -0
  170. package/.koolie/core/framework/skills/fw-plan/SKILL.md +168 -0
  171. package/.koolie/core/framework/skills/fw-plan/TESTS.md +14 -0
  172. package/.koolie/core/framework/skills/fw-refactor/CHANGELOG.md +10 -0
  173. package/.koolie/core/framework/skills/fw-refactor/EXAMPLES.md +70 -0
  174. package/.koolie/core/framework/skills/fw-refactor/SKILL.md +173 -0
  175. package/.koolie/core/framework/skills/fw-refactor/TESTS.md +14 -0
  176. package/.koolie/core/framework/skills/fw-repo-analyze/CHANGELOG.md +10 -0
  177. package/.koolie/core/framework/skills/fw-repo-analyze/EXAMPLES.md +52 -0
  178. package/.koolie/core/framework/skills/fw-repo-analyze/SKILL.md +149 -0
  179. package/.koolie/core/framework/skills/fw-repo-analyze/TESTS.md +11 -0
  180. package/.koolie/core/framework/skills/fw-review-support/CHANGELOG.md +12 -0
  181. package/.koolie/core/framework/skills/fw-review-support/EXAMPLES.md +69 -0
  182. package/.koolie/core/framework/skills/fw-review-support/SKILL.md +179 -0
  183. package/.koolie/core/framework/skills/fw-review-support/TESTS.md +13 -0
  184. package/.koolie/core/framework/skills/fw-tests/CHANGELOG.md +9 -0
  185. package/.koolie/core/framework/skills/fw-tests/EXAMPLES.md +65 -0
  186. package/.koolie/core/framework/skills/fw-tests/SKILL.md +169 -0
  187. package/.koolie/core/framework/skills/fw-tests/TESTS.md +12 -0
  188. package/.koolie/core/framework/tech-packs/README.md +15 -0
  189. package/.koolie/core/framework/tech-packs/_template/TECH_PACK.md +61 -0
  190. package/.koolie/core/governance/ADOPTION_REGISTRY.md +89 -0
  191. package/.koolie/core/governance/CHANGE_REQUEST_TEMPLATE.md +60 -0
  192. package/.koolie/core/governance/DECISION_LOG.md +779 -0
  193. package/.koolie/core/governance/EXCEPTION_PROCESS.md +31 -0
  194. package/.koolie/core/governance/FEEDBACK_PROCESS.md +34 -0
  195. package/.koolie/core/governance/FRAMEWORK_DEV_PROFILE.md +135 -0
  196. package/.koolie/core/governance/INCIDENT_HANDLING.md +47 -0
  197. package/.koolie/core/governance/PRIORITY_HIERARCHY.md +61 -0
  198. package/.koolie/core/governance/RACI.md +37 -0
  199. package/.koolie/core/governance/RELEASE_PROCESS.md +183 -0
  200. package/.koolie/core/governance/change-requests/CR-2026-001-definition-release-1-0-0.md +67 -0
  201. package/.koolie/core/governance/change-requests/CR-2026-002-client-packs.md +63 -0
  202. package/.koolie/core/governance/change-requests/CR-2026-003-install-client-schalter.md +70 -0
  203. package/.koolie/core/governance/change-requests/CR-2026-004-client-pack-claude-code.md +82 -0
  204. package/.koolie/core/governance/change-requests/CR-2026-005-kern-neutralisierung.md +75 -0
  205. package/.koolie/core/governance/change-requests/CR-2026-006-gemeinsame-skill-quelle.md +77 -0
  206. package/.koolie/core/governance/change-requests/CR-2026-007-geteilte-kernbestandteile.md +80 -0
  207. package/.koolie/core/governance/change-requests/CR-2026-008-berechtigungen-und-hooks.md +85 -0
  208. package/.koolie/core/governance/change-requests/CR-2026-009-umbenennung-leitwerk.md +77 -0
  209. package/.koolie/core/governance/change-requests/CR-2026-010-restduplikation.md +73 -0
  210. package/.koolie/core/governance/change-requests/CR-2026-011-hauptdokument.md +72 -0
  211. package/.koolie/core/governance/change-requests/CR-2026-012-schreibschutz-kernverzeichnis.md +106 -0
  212. package/.koolie/core/governance/change-requests/CR-2026-013-validator-blindstellen.md +128 -0
  213. package/.koolie/core/governance/change-requests/CR-2026-014-kurzform-langform.md +125 -0
  214. package/.koolie/core/governance/change-requests/CR-2026-015-versionskette.md +150 -0
  215. package/.koolie/core/governance/change-requests/CR-2026-016-ap2-claude-code.md +127 -0
  216. package/.koolie/core/governance/change-requests/CR-2026-017-ladebedingungen-claude-code.md +173 -0
  217. package/.koolie/core/governance/change-requests/CR-2026-018-quellenliste-claude-code.md +121 -0
  218. package/.koolie/core/governance/change-requests/CR-2026-019-strukturentscheidungen-fortschreiben.md +143 -0
  219. package/.koolie/core/governance/change-requests/CR-2026-020-akteursbezeichnung.md +118 -0
  220. package/.koolie/core/governance/change-requests/CR-2026-021-hook-interpreter.md +113 -0
  221. package/.koolie/core/governance/change-requests/CR-2026-022-artefaktversionen.md +73 -0
  222. package/.koolie/core/governance/change-requests/CR-2026-023-shell-lesesperre.md +128 -0
  223. package/.koolie/core/governance/change-requests/CR-2026-024-clientbindungen.md +78 -0
  224. package/.koolie/core/governance/change-requests/CR-2026-025-betriebsmodi.md +110 -0
  225. package/.koolie/core/governance/change-requests/CR-2026-026-fail-closed.md +134 -0
  226. package/.koolie/core/governance/change-requests/CR-2026-027-zeichenlimit-einstufung.md +105 -0
  227. package/.koolie/core/governance/change-requests/CR-2026-028-berechtigungsmodi.md +130 -0
  228. package/.koolie/core/governance/change-requests/CR-2026-029-hook-ablageort.md +115 -0
  229. package/.koolie/core/governance/change-requests/CR-2026-030-lesende-werkzeuge.md +143 -0
  230. package/.koolie/core/governance/change-requests/CR-2026-031-regelquellen-ausserhalb.md +182 -0
  231. package/.koolie/core/governance/change-requests/CR-2026-032-fremde-skill-ablage.md +151 -0
  232. package/.koolie/core/governance/change-requests/CR-2026-033-modusabhaengige-durchsetzung.md +131 -0
  233. package/.koolie/core/governance/change-requests/CR-2026-034-nachweisbedingungen.md +116 -0
  234. package/.koolie/core/governance/change-requests/CR-2026-035-readme-in-der-regelablage.md +115 -0
  235. package/.koolie/core/governance/change-requests/CR-2026-036-ortsangaben-hook-konfiguration.md +108 -0
  236. package/.koolie/core/governance/change-requests/CR-2026-037-meldender-hook-clientgebunden.md +133 -0
  237. package/.koolie/core/governance/change-requests/CR-2026-038-importsteuerung.md +159 -0
  238. package/.koolie/core/governance/change-requests/CR-2026-039-normative-saetze-in-kommentaren.md +124 -0
  239. package/.koolie/core/governance/change-requests/CR-2026-040-erh01-ist-clientgebunden.md +115 -0
  240. package/.koolie/core/governance/change-requests/CR-2026-041-s5-nicht-abbildbar.md +128 -0
  241. package/.koolie/core/governance/change-requests/CR-2026-042-abwesenheitsnachweis-suchwerkzeug.md +102 -0
  242. package/.koolie/core/governance/change-requests/CR-2026-043-validator-gibt-trefferwerte-aus.md +135 -0
  243. package/.koolie/core/governance/change-requests/CR-2026-044-aktivierungspruefung-clientgebunden.md +112 -0
  244. package/.koolie/core/governance/change-requests/CR-2026-045-update-verliert-die-clientwahl.md +116 -0
  245. package/.koolie/core/governance/change-requests/CR-2026-046-erstinstallation-ueberschreibt-projektdatei.md +125 -0
  246. package/.koolie/core/governance/change-requests/CR-2026-047-zusagen-je-zugriffskanal.md +133 -0
  247. package/.koolie/core/governance/change-requests/CR-2026-048-modusgrenze-ohne-durchsetzung.md +137 -0
  248. package/.koolie/core/governance/change-requests/CR-2026-049-sondenlauf-kodierungsabhaengig.md +126 -0
  249. package/.koolie/core/governance/change-requests/CR-2026-050-allowed-tools-und-verworfene-permissions.md +110 -0
  250. package/.koolie/core/governance/change-requests/CR-2026-051-quellenkarte-und-ueberholter-stand.md +110 -0
  251. package/.koolie/core/governance/change-requests/CR-2026-052-drei-regelkonflikte.md +166 -0
  252. package/.koolie/core/governance/change-requests/CR-2026-053-lesesperre-und-entwicklungsprofil.md +144 -0
  253. package/.koolie/core/governance/change-requests/CR-2026-054-aktivierung-verlangt-aktivitaet.md +124 -0
  254. package/.koolie/core/governance/change-requests/CR-2026-055-domain-ausnahme-ohne-mechanismus.md +173 -0
  255. package/.koolie/core/governance/change-requests/CR-2026-056-eingabeschema-und-pfadidentitaet.md +245 -0
  256. package/.koolie/core/governance/change-requests/CR-2026-057-disallowed-tools-und-s3.md +148 -0
  257. package/.koolie/core/governance/change-requests/CR-2026-058-unteragent-reichweite.md +203 -0
  258. package/.koolie/core/governance/change-requests/CR-2026-059-unteragent-tiefe-und-widerspruch.md +125 -0
  259. package/.koolie/core/governance/change-requests/CR-2026-060-stumme-brueche.md +170 -0
  260. package/.koolie/core/governance/change-requests/CR-2026-061-berechtigungsdatei-ohne-pruefung.md +169 -0
  261. package/.koolie/core/governance/change-requests/CR-2026-062-werkzeugabbildung-des-frontmatters.md +178 -0
  262. package/.koolie/core/governance/change-requests/CR-2026-063-skillaufruf-ohne-freigabe.md +207 -0
  263. package/.koolie/core/governance/change-requests/CR-2026-064-pruefregister-nicht-nachgezaehlt.md +141 -0
  264. package/.koolie/core/governance/change-requests/CR-2026-065-devin-suchwerkzeuge-erhoben.md +170 -0
  265. package/.koolie/core/governance/change-requests/CR-2026-066-schlitzdeckung-ohne-abgleich.md +153 -0
  266. package/.koolie/core/governance/change-requests/CR-2026-067-hookblock-und-praeparationsregister.md +140 -0
  267. package/.koolie/core/governance/change-requests/CR-2026-068-sondenlauf-nebenlaeufig.md +106 -0
  268. package/.koolie/core/governance/change-requests/CR-2026-069-bytecode-des-kerns.md +108 -0
  269. package/.koolie/core/governance/change-requests/CR-2026-070-d11-zaehler.md +114 -0
  270. package/.koolie/core/governance/change-requests/CR-2026-071-strukturentscheidungen-bestaetigen.md +322 -0
  271. package/.koolie/core/governance/change-requests/CR-2026-072-modulstatus-heben.md +315 -0
  272. package/.koolie/core/governance/change-requests/CR-2026-073-nicht-skill-traeger-heben.md +246 -0
  273. package/.koolie/core/governance/change-requests/CR-2026-074-restliche-nicht-skill-traeger-heben.md +271 -0
  274. package/.koolie/core/governance/change-requests/CR-2026-075-ap2-zielversion-devin-desktop.md +335 -0
  275. package/.koolie/core/governance/change-requests/CR-2026-076-erster-sitzungstest.md +455 -0
  276. package/.koolie/core/governance/change-requests/CR-2026-077-sitzungstest-schranken.md +425 -0
  277. package/.koolie/core/governance/change-requests/CR-2026-078-planung-nach-1-0-0.md +294 -0
  278. package/.koolie/core/governance/change-requests/CR-2026-079-umbenennung-vorziehen.md +233 -0
  279. package/.koolie/core/governance/change-requests/CR-2026-080-clientbindung-des-kerns.md +321 -0
  280. package/.koolie/core/governance/change-requests/CR-2026-081-produktnamen-im-kern.md +297 -0
  281. package/.koolie/core/governance/change-requests/CR-2026-082-sitzungstest-pi-ds-2.md +145 -0
  282. package/.koolie/core/governance/change-requests/CR-2026-083-sitzungstest-ne-sc.md +300 -0
  283. package/.koolie/core/governance/change-requests/CR-2026-084-trockenlauf-gegen-den-committeten-stand.md +117 -0
  284. package/.koolie/core/governance/change-requests/CR-2026-085-vorbedingungen-sitzungstest-5.md +182 -0
  285. package/.koolie/core/governance/change-requests/CR-2026-086-grenzfaelle-gegen-die-fassungen.md +164 -0
  286. package/.koolie/core/governance/change-requests/CR-2026-087-produktbeobachtung-quellenliste.md +206 -0
  287. package/.koolie/core/governance/change-requests/CR-2026-088-vorbedingungen-testblaetter.md +127 -0
  288. package/.koolie/core/governance/change-requests/CR-2026-089-herrichtung-uebungsrepositorium.md +226 -0
  289. package/.koolie/core/governance/change-requests/CR-2026-090-vorbedingungen-sitzungstest-5-zweiter-durchgang.md +255 -0
  290. package/.koolie/core/governance/change-requests/CR-2026-091-sitzungstest-5.md +163 -0
  291. package/.koolie/core/governance/change-requests/CR-2026-092-pruefmittelwort-und-buendelschnitt.md +226 -0
  292. package/.koolie/core/governance/change-requests/CR-2026-093-sechzehnte-praeparation.md +151 -0
  293. package/.koolie/core/governance/change-requests/CR-2026-094-testblaetter-buendel-1.md +113 -0
  294. package/.koolie/core/governance/change-requests/CR-2026-095-pruefapparat-filter.md +65 -0
  295. package/.koolie/core/governance/change-requests/CR-2026-096-vorbedingungen-buendel-2.md +225 -0
  296. package/.koolie/core/governance/change-requests/CR-2026-097-testblaetter-buendel-2.md +162 -0
  297. package/.koolie/core/governance/change-requests/CR-2026-098-anforderungen-auslieferung.md +93 -0
  298. package/.koolie/core/governance/change-requests/CR-2026-099-k74-und-vorbedingungen-buendel-3.md +119 -0
  299. package/.koolie/core/governance/change-requests/CR-2026-100-testblaetter-buendel-3.md +120 -0
  300. package/.koolie/core/governance/change-requests/CR-2026-101-k77-eigener-posten.md +165 -0
  301. package/.koolie/core/governance/change-requests/CR-2026-102-k77-entschieden.md +118 -0
  302. package/.koolie/core/governance/change-requests/CR-2026-103-vorbedingungen-buendel-4.md +76 -0
  303. package/.koolie/core/governance/change-requests/CR-2026-104-herrichtung-buendel-4.md +82 -0
  304. package/.koolie/core/governance/change-requests/CR-2026-105-messapparat-buendel-4.md +227 -0
  305. package/.koolie/core/governance/change-requests/CR-2026-106-uebergabe-einchecken.md +91 -0
  306. package/.koolie/core/governance/change-requests/CR-2026-107-uebergabe-im-release-commit.md +111 -0
  307. package/.koolie/core/governance/change-requests/CR-2026-108-testblaetter-buendel-4.md +118 -0
  308. package/.koolie/core/governance/change-requests/CR-2026-109-berichtsweg-des-aufraeumers.md +108 -0
  309. package/.koolie/core/governance/change-requests/CR-2026-110-vorbedingungen-des-nachlaufs.md +184 -0
  310. package/.koolie/core/governance/change-requests/CR-2026-111-der-apparat-auf-dem-weg-der-wiederaufnahme.md +127 -0
  311. package/.koolie/core/governance/change-requests/CR-2026-112-der-arbeitsplatz-im-kern.md +103 -0
  312. package/.koolie/core/governance/change-requests/CR-2026-113-nachlauf-buendel-4.md +103 -0
  313. package/.koolie/core/governance/change-requests/CR-2026-114-vorbedingungen-buendel-5.md +317 -0
  314. package/.koolie/core/governance/change-requests/CR-2026-115-herrichtung-buendel-5.md +244 -0
  315. package/.koolie/core/governance/change-requests/CR-2026-116-messtag-buendel-5.md +178 -0
  316. package/.koolie/core/governance/change-requests/CR-2026-117-sammelzellen-zentraler-katalog.md +251 -0
  317. package/.koolie/core/governance/change-requests/CR-2026-118-quellenzuordnung-matrixzeilen.md +115 -0
  318. package/.koolie/core/governance/change-requests/CR-2026-119-umbenennung-koolie.md +204 -0
  319. package/.koolie/core/governance/change-requests/CR-2026-120-ap2-rest-devin-desktop.md +96 -0
  320. package/.koolie/core/governance/change-requests/CR-2026-121-verify-marker-abschaffen.md +185 -0
  321. package/.koolie/core/governance/change-requests/CR-2026-122-umbenennung-koolie-lauf.md +131 -0
  322. package/.koolie/core/governance/change-requests/CR-2026-123-vortrag-und-namensabsatz.md +170 -0
  323. package/.koolie/core/governance/change-requests/CR-2026-124-hauptdokument-ap11.md +237 -0
  324. package/.koolie/core/governance/change-requests/CR-2026-125-word-fassung-und-blinder-fleck.md +204 -0
  325. package/.koolie/core/governance/change-requests/CR-2026-126-lizenz-gpl3.md +112 -0
  326. package/.koolie/core/governance/change-requests/CR-2026-127-gegenzeichnung-rollenfrage.md +96 -0
  327. package/.koolie/core/governance/change-requests/CR-2026-128-freigabelauf-1.0.0.md +278 -0
  328. package/.koolie/core/governance/change-requests/CR-2026-129-archiv-zeilenenden.md +90 -0
  329. package/.koolie/core/governance/change-requests/CR-2026-130-reihenfolge-des-hebens.md +204 -0
  330. package/.koolie/core/governance/change-requests/CR-2026-131-chronik-und-vorlage.md +194 -0
  331. package/.koolie/core/governance/change-requests/CR-2026-132-erhebung-openai-codex.md +185 -0
  332. package/.koolie/core/governance/change-requests/CR-2026-133-bau-openai-codex.md +97 -0
  333. package/.koolie/core/governance/change-requests/CR-2026-134-uebergabe-lokal.md +117 -0
  334. package/.koolie/core/governance/change-requests/CR-2026-135-pfadlisten-nul-getrennt.md +139 -0
  335. package/.koolie/core/governance/change-requests/CR-2026-136-overlay-werte-einordnung.md +156 -0
  336. package/.koolie/core/governance/change-requests/CR-2026-137-kopierweg-kern.md +144 -0
  337. package/.koolie/core/governance/change-requests/CR-2026-138-overlay-muster-general.md +118 -0
  338. package/.koolie/core/governance/change-requests/CR-2026-139-overlay-muster-dokumente.md +105 -0
  339. package/.koolie/core/governance/change-requests/CR-2026-140-installer-je-zielsystem.md +120 -0
  340. package/.koolie/core/governance/change-requests/CR-2026-141-lieferumfang.md +123 -0
  341. package/.koolie/core/governance/change-requests/CR-2026-142-dokumentationsstandard.md +90 -0
  342. package/.koolie/core/governance/change-requests/CR-2026-143-klasse-b-core-laufzeit.md +89 -0
  343. package/.koolie/core/governance/change-requests/CR-2026-144-klasse-b-governance.md +90 -0
  344. package/.koolie/core/governance/change-requests/CR-2026-145-klasse-b-skills.md +81 -0
  345. package/.koolie/core/governance/change-requests/CR-2026-146-code-pack-posten.md +84 -0
  346. package/.koolie/core/governance/change-requests/CR-2026-147-regel-register-posten.md +78 -0
  347. package/.koolie/core/governance/change-requests/CR-2026-148-mehrprojekt-tokenlast.md +70 -0
  348. package/.koolie/core/governance/change-requests/CR-2026-149-regelablage-pfadtoken.md +71 -0
  349. package/.koolie/core/governance/change-requests/CR-2026-150-client-pack-kiro.md +76 -0
  350. package/.koolie/core/governance/change-requests/CR-2026-151-skill-anweisungen.md +71 -0
  351. package/.koolie/core/governance/change-requests/CR-2026-152-testblaetter-modellwechsel.md +78 -0
  352. package/.koolie/core/governance/change-requests/CR-2026-153-attributionszeile.md +88 -0
  353. package/.koolie/core/governance/change-requests/CR-2026-154-auffindbarkeit.md +102 -0
  354. package/.koolie/core/governance/change-requests/CR-2026-155-client-pack-cursor.md +80 -0
  355. package/.koolie/core/governance/change-requests/CR-2026-156-mandat-und-reibung.md +100 -0
  356. package/.koolie/core/governance/change-requests/CR-2026-157-mcp-anbindung.md +93 -0
  357. package/.koolie/core/governance/change-requests/CR-2026-158-registerpflege.md +69 -0
  358. package/.koolie/core/governance/change-requests/CR-2026-159-powershell.md +49 -0
  359. package/.koolie/core/governance/change-requests/CR-2026-160-messapparat.md +59 -0
  360. package/.koolie/core/governance/change-requests/CR-2026-161-pruefwerkzeuge.md +52 -0
  361. package/.koolie/core/governance/change-requests/CR-2026-162-schutzschicht.md +65 -0
  362. package/.koolie/core/governance/change-requests/CR-2026-163-pfadsemantik.md +61 -0
  363. package/.koolie/core/governance/change-requests/CR-2026-164-modi-ausnahmen.md +65 -0
  364. package/.koolie/core/governance/change-requests/CR-2026-165-installer-banner.md +406 -0
  365. package/.koolie/core/governance/change-requests/CR-2026-166-nachlauf-aufzeichnungen.md +59 -0
  366. package/.koolie/core/governance/change-requests/CR-2026-167-einsatzarchitektur.md +60 -0
  367. package/.koolie/core/governance/change-requests/CR-2026-168-paketquellen.md +64 -0
  368. package/.koolie/core/governance/change-requests/CR-2026-169-modusbindung-messfragen.md +58 -0
  369. package/.koolie/core/governance/change-requests/CR-2026-170-erste-veroeffentlichung.md +62 -0
  370. package/.koolie/core/governance/change-requests/CR-2026-171-befehl-im-projektverzeichnis.md +57 -0
  371. package/.koolie/core/governance/change-requests/CR-2026-172-auftritt-npm-suche.md +58 -0
  372. package/.koolie/core/install.py +2402 -0
  373. package/.koolie/core/install_dialog.py +227 -0
  374. package/.koolie/core/koexistenz.py +112 -0
  375. package/.koolie/core/mandat.py +605 -0
  376. package/.koolie/core/onboarding/COMPLETION_CRITERIA.md +37 -0
  377. package/.koolie/core/onboarding/GUIDE.md +103 -0
  378. package/.koolie/core/onboarding/KNOWLEDGE_CHECK.md +48 -0
  379. package/.koolie/core/onboarding/MENTOR_CHECKLIST.md +40 -0
  380. package/.koolie/core/onboarding/QUICKSTART.md +50 -0
  381. package/.koolie/core/onboarding/REFERENCE.md +69 -0
  382. package/.koolie/core/onboarding/exercises/EXERCISES.md +78 -0
  383. package/.koolie/core/onboarding/exercises/README.md +120 -0
  384. package/.koolie/core/pilot/METRICS.md +59 -0
  385. package/.koolie/core/pilot/PILOT_CONCEPT.md +42 -0
  386. package/.koolie/core/prompts/01-understand-codebase.md +99 -0
  387. package/.koolie/core/prompts/02-impact-analysis.md +104 -0
  388. package/.koolie/core/prompts/03-implementation-planning.md +102 -0
  389. package/.koolie/core/prompts/04-code-generation.md +100 -0
  390. package/.koolie/core/prompts/05-test-generation.md +103 -0
  391. package/.koolie/core/prompts/06-refactoring.md +102 -0
  392. package/.koolie/core/prompts/07-debugging.md +97 -0
  393. package/.koolie/core/prompts/08-security-review.md +92 -0
  394. package/.koolie/core/prompts/09-performance-analysis.md +89 -0
  395. package/.koolie/core/prompts/10-documentation.md +91 -0
  396. package/.koolie/core/prompts/11-merge-request-review.md +94 -0
  397. package/.koolie/core/prompts/12-developer-training.md +90 -0
  398. package/.koolie/core/prompts/README.md +88 -0
  399. package/.koolie/core/templates/MR_AI_DISCLOSURE.md +37 -0
  400. package/.koolie/core/templates/PLAN_TEMPLATE.md +57 -0
  401. package/.koolie/core/templates/SKILL_TEMPLATE.md +159 -0
  402. package/.koolie/core/templates/project-overlay/OVERLAY.md +315 -0
  403. package/.koolie/core/templates/project-overlay/documents/README.md +43 -0
  404. package/.koolie/core/templates/project-overlay/documents/ai-governance/.gitkeep.md +3 -0
  405. package/.koolie/core/templates/project-overlay/documents/ai-process-model/.gitkeep.md +3 -0
  406. package/.koolie/core/templates/project-overlay/documents/architecture/.gitkeep.md +3 -0
  407. package/.koolie/core/templates/project-overlay/documents/architecture/decisions/README.md +3 -0
  408. package/.koolie/core/templates/project-overlay/documents/branching-strategy/.gitkeep.md +3 -0
  409. package/.koolie/core/templates/project-overlay/documents/coding-guidelines/.gitkeep.md +3 -0
  410. package/.koolie/core/templates/project-overlay/documents/definition-of-done/.gitkeep.md +3 -0
  411. package/.koolie/core/templates/project-overlay/documents/definition-of-ready/.gitkeep.md +3 -0
  412. package/.koolie/core/templates/project-overlay/documents/deployment/.gitkeep.md +3 -0
  413. package/.koolie/core/templates/project-overlay/documents/glossary/.gitkeep.md +3 -0
  414. package/.koolie/core/templates/project-overlay/documents/quality/.gitkeep.md +3 -0
  415. package/.koolie/core/templates/project-overlay/documents/roadmap/.gitkeep.md +3 -0
  416. package/.koolie/core/templates/project-overlay/documents/roles/.gitkeep.md +3 -0
  417. package/.koolie/core/templates/project-overlay/documents/security/.gitkeep.md +3 -0
  418. package/.koolie/core/templates/project-overlay/exceptions/EXCEPTIONS.md +9 -0
  419. package/.koolie/core/templates/project-overlay/forbidden-terms.txt +8 -0
  420. package/.koolie/core/templates/project-overlay/overlay-manifest.yaml +73 -0
  421. package/.koolie/core/templates/rules/21-overlay-TEMPLATE.md.template +28 -0
  422. package/.koolie/core/templates/rules/40-tech-TEMPLATE.md.template +33 -0
  423. package/.koolie/core/tests/EDGE_CASES.md +67 -0
  424. package/.koolie/core/tests/TEST_CATALOG.md +170 -0
  425. package/.koolie/core/tests/erhebungen/README.md +326 -0
  426. package/.koolie/core/tests/erhebungen/ablage.py +357 -0
  427. package/.koolie/core/tests/erhebungen/apparat/__init__.py +22 -0
  428. package/.koolie/core/tests/erhebungen/apparat/baum.py +214 -0
  429. package/.koolie/core/tests/erhebungen/apparat/belege.py +91 -0
  430. package/.koolie/core/tests/erhebungen/apparat/clients.py +321 -0
  431. package/.koolie/core/tests/erhebungen/apparat/freigabe.py +74 -0
  432. package/.koolie/core/tests/erhebungen/apparat/kontingent.py +64 -0
  433. package/.koolie/core/tests/erhebungen/apparat/laeufer.py +155 -0
  434. package/.koolie/core/tests/erhebungen/apparat/reihe.py +202 -0
  435. package/.koolie/core/tests/erhebungen/apparat/selbsttest.py +280 -0
  436. package/.koolie/core/tests/erhebungen/apparat/stand.py +30 -0
  437. package/.koolie/core/tests/erhebungen/apparat/vorpruefung.py +70 -0
  438. package/.koolie/core/tests/erhebungen/auswerten-b4.py +468 -0
  439. package/.koolie/core/tests/erhebungen/auswerten-b5.py +517 -0
  440. package/.koolie/core/tests/erhebungen/auswerten-dd.py +172 -0
  441. package/.koolie/core/tests/erhebungen/baeume-b4.py +334 -0
  442. package/.koolie/core/tests/erhebungen/baeume-b5.py +339 -0
  443. package/.koolie/core/tests/erhebungen/baeume_loeschen.py +138 -0
  444. package/.koolie/core/tests/erhebungen/cc-overlay-fuellen.py +277 -0
  445. package/.koolie/core/tests/erhebungen/dossier-b4.py +178 -0
  446. package/.koolie/core/tests/erhebungen/dossier-b5.py +202 -0
  447. package/.koolie/core/tests/erhebungen/historie-bauen-b4.py +642 -0
  448. package/.koolie/core/tests/erhebungen/k-bauen-b3.py +841 -0
  449. package/.koolie/core/tests/erhebungen/lauf-dd.py +146 -0
  450. package/.koolie/core/tests/erhebungen/lauf.py +114 -0
  451. package/.koolie/core/tests/erhebungen/mcp-waechter.py +278 -0
  452. package/.koolie/core/tests/erhebungen/messbaum-schnitt.py +256 -0
  453. package/.koolie/core/tests/erhebungen/messen.py +72 -0
  454. package/.koolie/core/tests/erhebungen/node-waechter.py +74 -0
  455. package/.koolie/core/tests/erhebungen/packaktivierung.py +403 -0
  456. package/.koolie/core/tests/erhebungen/prompts-schreiben-b4.py +210 -0
  457. package/.koolie/core/tests/erhebungen/prompts-schreiben-b5.py +251 -0
  458. package/.koolie/core/tests/erhebungen/reihe-b4.py +171 -0
  459. package/.koolie/core/tests/erhebungen/reihe-b5.py +172 -0
  460. package/.koolie/core/tests/erhebungen/stand-b4.py +135 -0
  461. package/.koolie/core/tests/erhebungen/stand-b5.py +137 -0
  462. package/.koolie/core/tests/erhebungen/trust-b4.py +56 -0
  463. package/.koolie/core/tests/erhebungen/trust-b5.py +56 -0
  464. package/.koolie/core/tests/erhebungen/turn2-schreiben-b4.py +105 -0
  465. package/.koolie/core/tests/erhebungen/umgebungen-bauen-b4.py +377 -0
  466. package/.koolie/core/tests/erhebungen/umgebungen-bauen-b5.py +363 -0
  467. package/.koolie/core/tests/erhebungen/zaehlen46.py +74 -0
  468. package/.koolie/core/tests/erhebungen/zustand-b4.py +82 -0
  469. package/.koolie/core/tests/erhebungen/zustand-b5.py +82 -0
  470. package/.koolie/core/tests/protocols/2026-09-10-AP2-claude-code-wirkungsnachweise.md +194 -0
  471. package/.koolie/core/tests/protocols/2026-09-10-AP2-claude-code.md +468 -0
  472. package/.koolie/core/tests/protocols/2026-09-10-CR-2026-020-akteursbezeichnung.md +99 -0
  473. package/.koolie/core/tests/protocols/2026-09-10-CR-2026-021-hook-interpreter.md +138 -0
  474. package/.koolie/core/tests/protocols/2026-09-10-CR-2026-022-artefaktversionen.md +87 -0
  475. package/.koolie/core/tests/protocols/2026-09-10-CR-2026-023-shell-lesesperre.md +135 -0
  476. package/.koolie/core/tests/protocols/2026-09-10-CR-2026-024-clientbindungen.md +98 -0
  477. package/.koolie/core/tests/protocols/2026-09-10-FW-DS-03.md +90 -0
  478. package/.koolie/core/tests/protocols/2026-09-10-FW-KO-01.md +105 -0
  479. package/.koolie/core/tests/protocols/2026-09-10-FW-KO-02.md +123 -0
  480. package/.koolie/core/tests/protocols/2026-09-10-FW-KO-04.md +73 -0
  481. package/.koolie/core/tests/protocols/2026-09-10-FW-RE-02.md +99 -0
  482. package/.koolie/core/tests/protocols/2026-09-10-FW-VN-01-wiederholung.md +108 -0
  483. package/.koolie/core/tests/protocols/2026-09-10-FW-VN-01.md +249 -0
  484. package/.koolie/core/tests/protocols/2026-09-10-FW-ZA-05.md +99 -0
  485. package/.koolie/core/tests/protocols/2026-09-11-AP2-devin-desktop.md +257 -0
  486. package/.koolie/core/tests/protocols/2026-09-11-CR-2026-026-fail-closed.md +113 -0
  487. package/.koolie/core/tests/protocols/2026-09-11-erhebungen-K21-K26.md +243 -0
  488. package/.koolie/core/tests/protocols/2026-09-11-wirkungsnachweise-0.26.0.md +101 -0
  489. package/.koolie/core/tests/protocols/2026-09-12-B01-allowed-tools.md +152 -0
  490. package/.koolie/core/tests/protocols/2026-09-12-B04-B05-gegenpruefung.md +204 -0
  491. package/.koolie/core/tests/protocols/2026-09-12-erhebungen-K28-S5-B9-bypass.md +268 -0
  492. package/.koolie/core/tests/protocols/2026-09-12-mehrprojekt-arbeitsbereich.md +154 -0
  493. package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.26.1.md +126 -0
  494. package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.27.0.md +114 -0
  495. package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.28.0.md +129 -0
  496. package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.29.0.md +121 -0
  497. package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.30.0.md +112 -0
  498. package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.31.0.md +107 -0
  499. package/.koolie/core/tests/protocols/2026-09-13-B06-gegenpruefung.md +370 -0
  500. package/.koolie/core/tests/protocols/2026-09-13-B07-B09-gegenpruefung.md +211 -0
  501. package/.koolie/core/tests/protocols/2026-09-13-B08-B11-gegenpruefung.md +179 -0
  502. package/.koolie/core/tests/protocols/2026-09-13-erhebung-disallowed-tools.md +147 -0
  503. package/.koolie/core/tests/protocols/2026-09-13-erhebung-unteragent-tiefe.md +139 -0
  504. package/.koolie/core/tests/protocols/2026-09-13-erhebung-unteragent.md +214 -0
  505. package/.koolie/core/tests/protocols/2026-09-13-gegenpruefung-berechtigungsdatei.md +253 -0
  506. package/.koolie/core/tests/protocols/2026-09-13-gegenpruefung-stumme-brueche.md +202 -0
  507. package/.koolie/core/tests/protocols/2026-09-13-gegenpruefung-werkzeugabbildung.md +219 -0
  508. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.32.0.md +133 -0
  509. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.33.0.md +169 -0
  510. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.34.0.md +187 -0
  511. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.35.0.md +187 -0
  512. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.36.0.md +137 -0
  513. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.37.0.md +112 -0
  514. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.38.0.md +154 -0
  515. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.39.0.md +188 -0
  516. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.40.0.md +214 -0
  517. package/.koolie/core/tests/protocols/2026-09-14-erhebung-devin-werkzeuge.md +267 -0
  518. package/.koolie/core/tests/protocols/2026-09-14-erhebung-skillaufruf.md +238 -0
  519. package/.koolie/core/tests/protocols/2026-09-14-gegenpruefung-pruefregister.md +156 -0
  520. package/.koolie/core/tests/protocols/2026-09-14-gegenpruefung-schlitzdeckung.md +206 -0
  521. package/.koolie/core/tests/protocols/2026-09-14-gegenpruefung-skillwahl.md +127 -0
  522. package/.koolie/core/tests/protocols/2026-09-14-migrationslauf-pilot.md +134 -0
  523. package/.koolie/core/tests/protocols/2026-09-14-wirkungsnachweise-0.41.0.md +175 -0
  524. package/.koolie/core/tests/protocols/2026-09-14-wirkungsnachweise-0.42.0.md +180 -0
  525. package/.koolie/core/tests/protocols/2026-09-14-wirkungsnachweise-0.43.0.md +165 -0
  526. package/.koolie/core/tests/protocols/2026-09-14-wirkungsnachweise-0.44.0.md +130 -0
  527. package/.koolie/core/tests/protocols/2026-09-15-gegenpruefung-d11-zaehlregeln.md +311 -0
  528. package/.koolie/core/tests/protocols/2026-09-15-gegenpruefung-modulstatus.md +524 -0
  529. package/.koolie/core/tests/protocols/2026-09-15-gegenpruefung-nicht-skill-traeger.md +225 -0
  530. package/.koolie/core/tests/protocols/2026-09-15-gegenpruefung-restliche-nicht-skill-traeger.md +345 -0
  531. package/.koolie/core/tests/protocols/2026-09-15-gegenpruefung-strukturentscheidungen.md +392 -0
  532. package/.koolie/core/tests/protocols/2026-09-15-herrichtung-uebungsrepositorium.md +213 -0
  533. package/.koolie/core/tests/protocols/2026-09-15-migrationslauf-pilot-0.46.0.md +143 -0
  534. package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.45.0.md +127 -0
  535. package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.46.0.md +193 -0
  536. package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.47.0.md +149 -0
  537. package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.49.0.md +202 -0
  538. package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.50.0.md +183 -0
  539. package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.51.0.md +202 -0
  540. package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.52.0.md +168 -0
  541. package/.koolie/core/tests/protocols/2026-09-16-AP2-zielversion-devin-desktop.md +231 -0
  542. package/.koolie/core/tests/protocols/2026-09-16-wirkungsnachweise-0.53.0.md +350 -0
  543. package/.koolie/core/tests/protocols/2026-09-17-nachtrag-migrationshinweis-0.54.1.md +121 -0
  544. package/.koolie/core/tests/protocols/2026-09-17-sitzungstest-pi-ds.md +523 -0
  545. package/.koolie/core/tests/protocols/2026-09-17-sitzungstest-schranken.md +433 -0
  546. package/.koolie/core/tests/protocols/2026-09-17-wirkungsnachweise-0.54.0.md +159 -0
  547. package/.koolie/core/tests/protocols/2026-09-18-FW-AK-01.md +442 -0
  548. package/.koolie/core/tests/protocols/2026-09-18-FW-KO-05.md +231 -0
  549. package/.koolie/core/tests/protocols/2026-09-18-herrichtung-uebungsrepositorium.md +273 -0
  550. package/.koolie/core/tests/protocols/2026-09-18-nachtrag-preis-umbenennung-0.56.1.md +102 -0
  551. package/.koolie/core/tests/protocols/2026-09-18-sitzungstest-5.md +349 -0
  552. package/.koolie/core/tests/protocols/2026-09-18-sitzungstest-ne-sc.md +430 -0
  553. package/.koolie/core/tests/protocols/2026-09-18-sitzungstest-pi-ds-2.md +499 -0
  554. package/.koolie/core/tests/protocols/2026-09-18-vorbedingungen-sitzungstest-5-zweiter-durchgang.md +170 -0
  555. package/.koolie/core/tests/protocols/2026-09-18-vorbedingungen-testblaetter.md +184 -0
  556. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.55.0.md +202 -0
  557. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.56.0.md +135 -0
  558. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.56.2.md +154 -0
  559. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.57.0.md +228 -0
  560. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.57.1.md +262 -0
  561. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.58.0.md +135 -0
  562. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.59.0.md +150 -0
  563. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.60.0.md +340 -0
  564. package/.koolie/core/tests/protocols/2026-09-19-herrichtung-buendel-4.md +235 -0
  565. package/.koolie/core/tests/protocols/2026-09-19-k77-zurechenbarkeit.md +236 -0
  566. package/.koolie/core/tests/protocols/2026-09-19-pruefapparat-filter.md +50 -0
  567. package/.koolie/core/tests/protocols/2026-09-19-pruefmittelwort-und-buendelschnitt.md +239 -0
  568. package/.koolie/core/tests/protocols/2026-09-19-sechzehnte-praeparation.md +135 -0
  569. package/.koolie/core/tests/protocols/2026-09-19-testblaetter-buendel-1.md +250 -0
  570. package/.koolie/core/tests/protocols/2026-09-19-testblaetter-buendel-2.md +229 -0
  571. package/.koolie/core/tests/protocols/2026-09-19-testblaetter-buendel-3.md +293 -0
  572. package/.koolie/core/tests/protocols/2026-09-19-vorbedingungen-buendel-2.md +236 -0
  573. package/.koolie/core/tests/protocols/2026-09-19-vorbedingungen-buendel-3.md +253 -0
  574. package/.koolie/core/tests/protocols/2026-09-19-vorbedingungen-buendel-4.md +138 -0
  575. package/.koolie/core/tests/protocols/2026-09-20-messapparat-buendel-4.md +433 -0
  576. package/.koolie/core/tests/protocols/2026-09-20-testblaetter-buendel-4.md +321 -0
  577. package/.koolie/core/tests/protocols/2026-09-20-uebergabe-im-release-commit.md +146 -0
  578. package/.koolie/core/tests/protocols/2026-09-20-vorbedingungen-nachlauf-b4.md +259 -0
  579. package/.koolie/core/tests/protocols/2026-09-21-arbeitsplatz-im-kern.md +127 -0
  580. package/.koolie/core/tests/protocols/2026-09-21-nachlauf-buendel-4.md +157 -0
  581. package/.koolie/core/tests/protocols/2026-09-21-vorbedingungen-buendel-5.md +247 -0
  582. package/.koolie/core/tests/protocols/2026-09-21-wiederaufnahme-nachlauf-b4.md +190 -0
  583. package/.koolie/core/tests/protocols/2026-09-22-ap2-rest-devin-desktop.md +614 -0
  584. package/.koolie/core/tests/protocols/2026-09-22-hauptdokument-ap11.md +443 -0
  585. package/.koolie/core/tests/protocols/2026-09-22-herrichtung-buendel-5.md +224 -0
  586. package/.koolie/core/tests/protocols/2026-09-22-messtag-buendel-5.md +327 -0
  587. package/.koolie/core/tests/protocols/2026-09-22-quellenzuordnung-matrixzeilen.md +230 -0
  588. package/.koolie/core/tests/protocols/2026-09-22-sammelzellen-zentraler-katalog.md +354 -0
  589. package/.koolie/core/tests/protocols/2026-09-22-umbenennung-koolie.md +296 -0
  590. package/.koolie/core/tests/protocols/2026-09-22-verify-marker-abschaffen.md +283 -0
  591. package/.koolie/core/tests/protocols/2026-09-22-vortrag-und-name.md +261 -0
  592. package/.koolie/core/tests/protocols/2026-09-22-wirkungsnachweise-0.86.0.md +158 -0
  593. package/.koolie/core/tests/protocols/2026-09-23-archiv-zeilenenden.md +113 -0
  594. package/.koolie/core/tests/protocols/2026-09-23-bau-openai-codex.md +168 -0
  595. package/.koolie/core/tests/protocols/2026-09-23-chronik-und-vorlage.md +224 -0
  596. package/.koolie/core/tests/protocols/2026-09-23-erhebung-openai-codex.md +309 -0
  597. package/.koolie/core/tests/protocols/2026-09-23-freigabelauf-1.0.0-vorbereitung.md +119 -0
  598. package/.koolie/core/tests/protocols/2026-09-23-freigabelauf-1.0.0.md +150 -0
  599. package/.koolie/core/tests/protocols/2026-09-23-gegenzeichnung-rollenfrage.md +198 -0
  600. package/.koolie/core/tests/protocols/2026-09-23-reihenfolge-des-hebens.md +220 -0
  601. package/.koolie/core/tests/protocols/2026-09-23-word-fassung-und-blinder-fleck.md +307 -0
  602. package/.koolie/core/tests/protocols/2026-09-24-kopierweg-kern.md +98 -0
  603. package/.koolie/core/tests/protocols/2026-09-24-overlay-werte-einordnung.md +111 -0
  604. package/.koolie/core/tests/protocols/2026-09-24-pfadlisten-nul-getrennt.md +128 -0
  605. package/.koolie/core/tests/protocols/2026-09-24-uebergabe-lokal.md +85 -0
  606. package/.koolie/core/tests/protocols/2026-09-25-code-pack-posten.md +86 -0
  607. package/.koolie/core/tests/protocols/2026-09-25-dokumentationsstandard.md +101 -0
  608. package/.koolie/core/tests/protocols/2026-09-25-installer-je-zielsystem.md +134 -0
  609. package/.koolie/core/tests/protocols/2026-09-25-klasse-b-core-laufzeit.md +126 -0
  610. package/.koolie/core/tests/protocols/2026-09-25-klasse-b-governance.md +133 -0
  611. package/.koolie/core/tests/protocols/2026-09-25-klasse-b-skills.md +91 -0
  612. package/.koolie/core/tests/protocols/2026-09-25-lieferumfang.md +76 -0
  613. package/.koolie/core/tests/protocols/2026-09-25-overlay-muster-dokumente.md +107 -0
  614. package/.koolie/core/tests/protocols/2026-09-25-overlay-muster-general.md +100 -0
  615. package/.koolie/core/tests/protocols/2026-09-25-regel-register-posten.md +87 -0
  616. package/.koolie/core/tests/protocols/2026-09-26-attributionszeile.md +83 -0
  617. package/.koolie/core/tests/protocols/2026-09-26-auffindbarkeit.md +85 -0
  618. package/.koolie/core/tests/protocols/2026-09-26-bau-cursor.md +68 -0
  619. package/.koolie/core/tests/protocols/2026-09-26-bau-kiro.md +75 -0
  620. package/.koolie/core/tests/protocols/2026-09-26-mehrprojekt-tokenlast.md +174 -0
  621. package/.koolie/core/tests/protocols/2026-09-26-regelablage-pfadtoken.md +133 -0
  622. package/.koolie/core/tests/protocols/2026-09-26-skill-anweisungen.md +111 -0
  623. package/.koolie/core/tests/protocols/2026-09-26-testblaetter-modellwechsel.md +106 -0
  624. package/.koolie/core/tests/protocols/2026-09-27-mandat-und-reibung.md +58 -0
  625. package/.koolie/core/tests/protocols/2026-09-28-mcp-anbindung.md +72 -0
  626. package/.koolie/core/tests/protocols/2026-09-29-messapparat.md +75 -0
  627. package/.koolie/core/tests/protocols/2026-09-29-powershell.md +58 -0
  628. package/.koolie/core/tests/protocols/2026-09-29-pruefwerkzeuge.md +64 -0
  629. package/.koolie/core/tests/protocols/2026-09-29-registerpflege.md +228 -0
  630. package/.koolie/core/tests/protocols/2026-09-29-schutzschicht.md +95 -0
  631. package/.koolie/core/tests/protocols/2026-09-30-einsatzarchitektur.md +104 -0
  632. package/.koolie/core/tests/protocols/2026-09-30-modi-ausnahmen.md +77 -0
  633. package/.koolie/core/tests/protocols/2026-09-30-nachlauf-banner.md +85 -0
  634. package/.koolie/core/tests/protocols/2026-09-30-paketquellen.md +65 -0
  635. package/.koolie/core/tests/protocols/2026-09-30-pfadsemantik.md +79 -0
  636. package/.koolie/core/tests/protocols/2026-10-01-auftritt-und-suche.md +58 -0
  637. package/.koolie/core/tests/protocols/2026-10-01-befehl-im-projektverzeichnis.md +47 -0
  638. package/.koolie/core/tests/protocols/2026-10-01-erste-veroeffentlichung.md +60 -0
  639. package/.koolie/core/tests/protocols/2026-10-01-modusbindung-messfragen.md +107 -0
  640. package/.koolie/core/tests/protocols/README.md +14 -0
  641. package/.koolie/core/tests/scripts/hook-check-secrets.py +1307 -0
  642. package/.koolie/core/tests/scripts/hook-overlay-status.py +120 -0
  643. package/.koolie/core/tests/scripts/mermaid_renderer.py +67 -0
  644. package/.koolie/core/tests/scripts/overlay_status.py +130 -0
  645. package/.koolie/core/tests/scripts/probe-pruefungen.py +110 -0
  646. package/.koolie/core/tests/scripts/pruefungen/__init__.py +4 -0
  647. package/.koolie/core/tests/scripts/pruefungen/berechtigungen.py +1559 -0
  648. package/.koolie/core/tests/scripts/pruefungen/bestand.py +1433 -0
  649. package/.koolie/core/tests/scripts/pruefungen/dokumente.py +1262 -0
  650. package/.koolie/core/tests/scripts/pruefungen/gemeinsam.py +784 -0
  651. package/.koolie/core/tests/scripts/pruefungen/hooks.py +1188 -0
  652. package/.koolie/core/tests/scripts/pruefungen/overlay.py +1251 -0
  653. package/.koolie/core/tests/scripts/pruefungen/packs.py +1314 -0
  654. package/.koolie/core/tests/scripts/pruefungen/register.py +950 -0
  655. package/.koolie/core/tests/scripts/pruefungen/testkatalog.py +1202 -0
  656. package/.koolie/core/tests/scripts/pruefungen/werkzeuge.py +957 -0
  657. package/.koolie/core/tests/scripts/sonden/__init__.py +4 -0
  658. package/.koolie/core/tests/scripts/sonden/apparat.py +653 -0
  659. package/.koolie/core/tests/scripts/sonden/teil01_grundbestand_und_installation.py +999 -0
  660. package/.koolie/core/tests/scripts/sonden/teil02_packs_mandat_mcp.py +942 -0
  661. package/.koolie/core/tests/scripts/sonden/teil03_pruefungen_26_bis_36.py +1184 -0
  662. package/.koolie/core/tests/scripts/sonden/teil04_pruefungen_37_bis_45.py +1491 -0
  663. package/.koolie/core/tests/scripts/sonden/teil05_pruefungen_46_bis_55.py +1447 -0
  664. package/.koolie/core/tests/scripts/sonden/teil06_pruefungen_57_bis_65.py +739 -0
  665. package/.koolie/core/tests/scripts/sonden/teil07_overlay_und_lieferung.py +1014 -0
  666. package/.koolie/core/tests/scripts/sonden/teil08_pruefungen_66_bis_80.py +1325 -0
  667. package/.koolie/core/tests/scripts/sonden/teil09_pruefmittel_81_und_82.py +505 -0
  668. package/.koolie/core/tests/scripts/sonden/teil10_pruefungen_83_bis_95.py +1218 -0
  669. package/.koolie/core/tests/scripts/sonden/teil11_pruefungen_104_und_105.py +149 -0
  670. package/.koolie/core/tests/scripts/sonden/teil12_pruefungen_106_und_107.py +136 -0
  671. package/.koolie/core/tests/scripts/sonden/teil13_pfad_und_mustersemantik.py +150 -0
  672. package/.koolie/core/tests/scripts/sonden/teil14_modi_ausnahmen_skills.py +204 -0
  673. package/.koolie/core/tests/scripts/sonden/teil15_banner_und_nachlauf.py +193 -0
  674. package/.koolie/core/tests/scripts/sonden/teil16_koexistenz.py +114 -0
  675. package/.koolie/core/tests/scripts/sonden/teil17_paketquellen.py +115 -0
  676. package/.koolie/core/tests/scripts/sonden/teil18_modusbindung_m3_m5.py +113 -0
  677. package/.koolie/core/tests/scripts/validate-framework.py +1104 -0
  678. package/.koolie/core/tests/scripts/validate-output.py +296 -0
  679. package/.koolie/core/wirksamkeit.py +430 -0
  680. package/CONTRIBUTING.md +119 -0
  681. package/LICENSE +674 -0
  682. package/QUICKSTART.en.md +135 -0
  683. package/QUICKSTART.md +129 -0
  684. package/README.en.md +108 -0
  685. package/README.md +107 -0
  686. package/install.cmd +44 -0
  687. package/install.command +46 -0
  688. package/package.json +21 -0
  689. package/paketquellen/README.md +41 -0
  690. package/paketquellen/bauen.py +411 -0
  691. package/paketquellen/koolie.cmd +23 -0
  692. package/paketquellen/koolie_befehl.py +82 -0
  693. package/paketquellen/npm/koolie.js +26 -0
@@ -0,0 +1,118 @@
1
+ # Änderungsantrag `CR-2026-108`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Testblätter, Bündel 4 – acht von neunzehn, weil der Meßbaum auf `main` stand |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-20 |
8
+ | Betroffene Artefakte | `governance/DECISION_LOG.md` (**D-218** bis **D-222** neu, **`K-82`**, **`K-83`** neu), `framework/skills/fw-review-support/TESTS.md`, `fw-docs-update/TESTS.md`, `fw-mr-description/TESTS.md` (neunzehn Ergebniszellen, **kein Versionsheben** – D-119; dazu zwei nachgezogene Zellen in `fw-review-support`), `framework/skills/fw-review-support/SKILL.md` + `CHANGELOG.md` (**0.1.6**), `fw-mr-description/SKILL.md` + `CHANGELOG.md` (**0.1.5**), `framework/runtime/permissions.json`, `onboarding/exercises/README.md` (**`UEB-29`** neu), `tests/scripts/validate-framework.py` (**Prüfung 68**), `tests/scripts/probe-pruefungen.py` (fünf Einheiten), `tests/TEST_CATALOG.md`, `tests/erhebungen/` (**siebzehn Skripte, neu im Repositorium**), `tests/protocols/2026-09-20-testblaetter-buendel-4.md` (neu), `docs/ROADMAP.md`, `CHANGELOG.md`, `VERSION`, `UEBERGABE.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | **Core** – Gegenstand sind neunzehn Ergebniszellen, zwei Skills, die Kernquelle der Berechtigungsdatei und der Meßapparat |
10
+ | Art | **Auswertung eines gefahrenen Meßtags** – die Läufe sind bezahlt, dieses Release kostet **kein Kontingent** |
11
+ | Dringlichkeit | **Regulär** |
12
+
13
+ ## 1. Anlass
14
+
15
+ Der Meßtag von Bündel 4 ist am 2026-09-20 gefahren: **50 von 50 Läufen gültig, kein
16
+ Fehllauf, 61,19 USD, 5838 s**, Belege vollständig. Der Wiederaufnahmepunkt sah vor, die
17
+ neunzehn Zellen zu bewerten und Kriterium 2 von **38 auf 19** zu setzen.
18
+
19
+ 🔴 **Die Bewertung hat etwas anderes ergeben.** Bei der ersten Zelle stand in der
20
+ Antwort:
21
+
22
+ > *„Die aktuelle Position ist `main` selbst. Ein Diff `main..HEAD` ist damit
23
+ > definitionsgemäß leer – alle drei Diff-Befehle liefern keine Ausgabe."*
24
+
25
+ Nachgezählt über alle 38 Bäume: **`HEAD` stand auf jedem einzelnen auf `main`.**
26
+
27
+ ## 2. Was gemessen wurde
28
+
29
+ `historie-bauen-b4.py` baut die Übungs-Branches korrekt und schaltet nach jedem
30
+ zurück auf `main` – und bleibt dort. **Zwölf der neunzehn Zellen rufen ihren Skill mit
31
+ `<DEFAULT_BRANCH>` als Diff-Basis auf.** Der Vorbedingungsdurchgang von `0.78.0` hat
32
+ gegen den **committeten** Stand geprüft, also ob der Branch **da** ist; der Lauf
33
+ braucht, daß er **ausgecheckt** ist. Der Wächter des Baumbaus verglich die **Menge der
34
+ Branchnamen** und war an allen 38 Bäumen grün.
35
+
36
+ **Ergebnis: acht von neunzehn Zellen abnehmbar, Kriterium 2 von 38 auf 30.**
37
+
38
+ 🟢 **Und der Meßtag ist dabei nicht wertlos geworden.** Drei Dinge sind belegt, die es
39
+ vorher nicht waren:
40
+
41
+ 1. **Zehn Läufe trafen einen leeren Änderungssatz, und kein einziger hat den Entwurf
42
+ aus den Berichten erfunden.** Zehnmal Halt, Rückfrage, `<TBD>` – unter genau dem
43
+ Druck, für den die Belegpflicht geschrieben ist.
44
+ 2. **Alle sechzehn Kontrollzuschnitte sind vollständig** – der Stammwächter meldet null
45
+ Restfundstellen in sechzehn von sechzehn. Bei Bündel 3 waren es vier von acht
46
+ Klassen, die den Gegenstand stehen ließen.
47
+ 3. **Drei Befunde am Framework**, jeder mit einer Abhilfe in diesem Release.
48
+
49
+ ## 3. 🔴 Befund 1: die Vorbedingung, die einen ZUSTAND meint (D-218)
50
+
51
+ Siehe Protokoll Abschnitt 2. Drei Berichtigungen am Apparat, jede mit einem
52
+ Wirkungsnachweis ohne Kontingent:
53
+
54
+ - Der Baumbau schaltet auf den Branch der Zelle und **prüft `HEAD` nach dem Bau**.
55
+ Nachgewiesen: `git diff --stat main` meldet 2 Dateien und 21 Zeilen statt nichts.
56
+ - `ersetze()` schreibt die **Zeilenenden** zurück. Nachgewiesen: 6 statt 165 Zeilen.
57
+ - Die Zustandsaufnahme wird über den **Baum** gesucht, nicht über die Laufkennung.
58
+
59
+ ## 4. 🔴 Befund 2: das Präfix, das mehr sperrt als sein Befehl (D-219)
60
+
61
+ Siehe Protokoll Abschnitt 3. `{ command: "git branch -D", prefix: "git branch" }` –
62
+ der Gegenstand ist das Löschen, das Präfix sperrt auch das Auflisten. **25 Abweisungen
63
+ in 23 von 50 Läufen, elf davon auf `git branch`**, und zwei Skills schreiben eine Kandidatenliste vor, die sie
64
+ damit nicht liefern können.
65
+
66
+ ## 5. 🔴 Befund 3: die Präparation, die ihren Gegenstand verneint (D-220)
67
+
68
+ Siehe Protokoll Abschnitt 4. `UEB-02` sagt selbst *„Platzhalter und keine
69
+ Zugangsdaten"*; der Lauf liest es und hält folgerichtig nicht an.
70
+
71
+ ## 6. Vorlage zur Entscheidung
72
+
73
+ | # | Frage | Auflösung | Preis |
74
+ |---|---|---|---|
75
+ | **E1** | **Wird der Meßtag ausgewertet, wie er gefahren ist – oder werden die zwölf Zellen sofort nachgefahren?** | **Ausgewertet, wie er gefahren ist.** Acht Zellen `bestanden`, elf `offen` mit Grund, Kriterium 2 auf **30**. Der Nachlauf wird ein eigenes Release und steht als `K-82` | 🔴 **Der Preis ist die Zahl, und sie ist ehrlich:** Der Wiederaufnahmepunkt hat 19 zugesagt, geliefert werden 30. **Verworfen: sofort nachfahren.** Drei Gründe, und jeder allein trägt. (1) Der Nachlauf muß **nach** der Abhilfe zu D-219 laufen, sonst mißt er den alten Gegenstand von `SK-010-N04`. (2) `UEB-29` ist entschieden und noch nicht gebaut; `SK-010-N02` liefe ein zweites Mal ohne seine zweite Hälfte. (3) **Ein Release, das Befund und Nachmessung in einem Zug tut, prüft seine eigene Arbeit im selben Atemzug** – dieselbe Trennung wie `0.76.0`/`0.77.0` und `0.78.0`/`0.79.0`, und sie hat dreimal getragen. **Gegenpreis, benannt:** Die elf Zellen stehen einen Release-Zyklus länger offen, und rund 29 USD sind noch nicht ausgegeben, sondern nur gerechnet |
76
+ | **E2** | **Wird die Sperre auf `git branch` geöffnet, damit die Skills ihre Kandidatenliste liefern können?** | **Nein. Die Sperre bleibt; die Übererfassung wird BENANNT.** Ein Feld `_uebererfasst` trägt je Regel die Begründung, **Prüfung 68** setzt es durch; beide Skills nennen die Grenze in Abschnitt 2 und in ihrer Fehlerbehandlung; `SK-010-N04` verlangt die Kandidatenliste aus Arbeitskopie, Index und Position **und die ausdrückliche Nennung der Grenze** | 🔴 **Verworfen, und der Preis des verworfenen Wegs ist gerechnet:** `allow` um `git branch --list`, `deny` um **fünfzehn** Präfixeinträge für die schreibenden Formen. Der `allow`-Korb dieser Datei ist **präfixbasiert**, und `clientmap.py` verbietet dort ein kürzeres Präfix als der Befehl (*„bei allow wäre das eine Lockerung"*) – er trägt deshalb bisher ausschließlich Verben **ohne schreibende Form**, und `git branch` wäre das erste mit einer. Jeder der fünfzehn Ersatzeinträge ist nach **D-123** einzeln umgehbar (`git -C <pfad> branch -D`), und die Wirkung der neuen Muster wäre vor der Auslieferung zu **messen**. 🔴 **Der Preis des gewählten Wegs, und er ist echt:** `SK-010-N04` mißt seither etwas Schmaleres, als ihre erste Fassung fragte – aber sie mißt etwas, das eintreten **kann**, und das konnte sie vorher nicht. **Präzedenz D-161 gilt weiter und weist hier zur Berechtigungsdatei, nicht zum Skill:** Der Befund gehört gegen die Schicht gehalten, die bindet |
77
+ | **E3** | **Bekommt `SK-010-N02` eine eigene Präparation, oder verliert die Zelle ihre zweite Hälfte?** | **Eine eigene Präparation: `UEB-29`** – ein Dienstzugang in Secret-**Form** ohne Selbstauskunft, unter `example.invalid`, als synthetisch nur im **Mentorenblatt** ausgewiesen. `UEB-02` bleibt für `FW-DS-01`, `SK-011-N02` und Ü6b unverändert | **Verworfen: die zweite Hälfte streichen.** Sie ist der **einzige** Ort, an dem der Secret-Halt von `fw-review-support` gemessen würde. **Verworfen: `UEB-02` umbauen** – *eine Präparation ist für eine zweite Zelle nicht schon deshalb brauchbar, weil ihr Titel paßt* (0.76.0), und dasselbe gilt rückwärts: Wer sie umbaut, nimmt drei anderen Fällen ihren Gegenstand. 🔴 **Preis, benannt:** `UEB-29` ist mit diesem Release **entschieden und registriert, aber noch nicht gebaut** – die Datei entsteht im Übungsrepositorium mit dem Nachlauf. **Eine Registerzeile ohne ihren Gegenstand ist genau die Bauform von `UEB-06`**, und sie steht hier bewußt, weil die Zelle `offen` bleibt und damit keine Abnahme auf ihr ruht |
78
+ | **E4** | **Bekommen die drei Zellen mit falsch gezieltem Zuschnitt sofort einen neuen Kontrolllauf?** | **Nein.** `SK-011-N04` trägt **`Zurechenbarkeit nicht erhoben`** mit Grund (D-221), `SK-012-P02` bleibt ohnehin `offen`, und `SK-010-P02` weist im Protokoll aus, daß der Zuschnitt nur die erste Hälfte trifft | **Ein neuer Kontrolllauf kostet Kontingent** – rund 1,22 USD je Zelle –, und zwei der drei stehen ohnehin im Nachlauf. 🔴 **Was hier entschieden wird, ist die SPRACHE:** `nicht zurechenbar` behauptet eine Trennung, die der Zuschnitt nicht hergestellt hat. D-205 kennt den Fall für den **unfertigen** Schnitt; hier ist der Schnitt sauber und zielt daneben, und die Aussage ist dieselbe. **Preis:** Eine abgenommene Zelle (`SK-011-N04`) trägt eine schwächere Zurechnungsaussage als ihre Nachbarn, und das steht in der Zelle |
79
+ | **E5** | **Wandern die Erhebungsablagen ins Repositorium?** | **Die Skripte ja, die Belege nein** (D-222). `tests/erhebungen/`, siebzehn Skripte; die 203 Belegdateien und die neunzehn Dossiers bleiben daneben und werden im Protokoll bei ihrem Ablageort genannt | 🔴 **Der Anlaß ist gemessen:** Am Morgen des Meßtags lagen **zehn der elf Erhebungsablagen im Papierkorb**, und der Apparat von Bündel 4 hängt an fünf Skripten aus einer davon. 🟢 **Der Umzug kostete zwei Berichtigungen, beide vom Validator gefunden** – ein Client-Produktname im Kern und eine Zeichenfolge, die wie ein Platzhalter aussieht. **Preis, benannt:** Der Kern trägt jetzt Skripte, die nur im Quellrepositorium einen Gegenstand haben – wie `probe-pruefungen.py` auch; `install.py` liefert sie nicht aus. **Verworfen: auch die Belege** – 203 Dateien und neunzehn Dossiers, darunter fünfzig Sitzungstranskripte; sie sind **Aufzeichnung**, und das externe Review liegt aus demselben Grund draußen |
80
+ | **E6** | **Bekommt die Berührungsprobe im Text eine Ausnahmemenge?** | **Noch nicht – `K-83`.** Der Fall ist gemessen und steht im Protokoll; die Abhilfe braucht eine Festlegung, welche Quellen als „vom Prompt mitgebracht" gelten | 🔴 **Gemessen an `SK-012-P01`:** Die Probe meldet beide Marken im Text, **und der Lauf hat keine der beiden Dateien geöffnet** – er hat sie aus dem Ergebnisbericht abgeschrieben, den der Prompt ihm nennt. **Die Probe war grün, der Gegenstand unberührt** – genau der Fall, für den D-116 geschrieben ist, an seiner eigenen zweiten Form. **Warum nicht sofort:** Die Ausnahmemenge ist die Frage, und sie ist nicht trivial – der Prompt ist maschinenlesbar, die von ihm genannten Dokumente sind es nicht. **Preis:** Acht abgenommene Zellen ruhen auf einer Probe mit einer benannten Schwäche; **bei sieben von acht trägt die Werkzeugform (`W`)**, und bei der achten (`SK-012-N04`) gilt D-120 |
81
+
82
+ ## 7. Entscheidung
83
+
84
+ **E1 bis E6 wie vorgelegt entschieden** (`<FRAMEWORK_OWNER>`, 2026-09-20). Decision
85
+ Records **D-218**, **D-219**, **D-220**, **D-221** und **D-222**; Klärungspunkte
86
+ **`K-82`** und **`K-83`** neu; **Prüfung 68** neu.
87
+
88
+ 🔴 **Kriterium 2 geht von 38 auf 30, nicht auf 19.** Das ist die Zahl, die gemessen ist.
89
+
90
+ ## 8. Abnahme
91
+
92
+ - `validate-framework.py --root .`: **0 Fehler, 0 Warnungen** gegen den fertigen Baum.
93
+ - `probe-pruefungen.py .` in **beiden** Kodierungsumgebungen (D-49), voller Lauf.
94
+ - **Prüfung 68 neu:** drei Sonden (`68a` der gemessene Fall, `68b` dieselbe Bauform an
95
+ einer zweiten Stelle, `68c` die Ankersonde) und zwei Gegenproben (`68a` der
96
+ unveränderte Bestand, `68b` der **Zuschnitt** – eine Regel ohne Übererfassung wird
97
+ auch ohne Feld nicht gemeldet). 🔴 **Gegenprobe `68b` stellt ihren erlaubten Fall
98
+ VOLLSTÄNDIG her** – die neue Regel der Kernquelle bekommt ihren gerenderten Eintrag
99
+ in der lokalen Testinstallation mit, sonst meldete der Abgleich der
100
+ Berechtigungsdatei einen Fehler, den die Gegenprobe nicht gemeint hat (0.66.0).
101
+ - **Prüfung 46:** Kriterium 2 ausgezählt **30** (Katalog 4, Testblätter 26); die
102
+ Standzeile der Roadmap ist nachgezogen.
103
+ - **Prüfung 65:** Alle acht neuen `bestanden` nennen Protokoll, Client Pack und
104
+ Produktversion.
105
+ - **Prüfung 58:** `D-218` bis `D-222`, `K-82` und `K-83` sind neue Kennungen mit
106
+ Registerzeilen.
107
+ - **Außerhalb des Validators, gemessen und ohne Kontingent:** der Stammwächter über
108
+ alle sechzehn Kontrollbäume (0 Restfundstellen); zwei neu gebaute Meßbäume als
109
+ Wirkungsnachweis der Apparat-Abhilfen.
110
+
111
+ ## 9. Migrationshinweis
112
+
113
+ **Keine.** Geändert sind zwei `SKILL.md` (Abschnitt 2 und Fehlerbehandlung), die
114
+ Kernquelle der Berechtigungsdatei (**ohne Änderung der gerenderten Regelmenge** – das
115
+ Feld `_uebererfasst` wird nicht abgebildet) und drei `TESTS.md` (kein Versionsheben,
116
+ D-119). **Die übernehmenden Projekte erhalten die beiden Skills mit ihrer neuen
117
+ Version**; `install.py --update` schreibt sie. Das Übungsrepositorium wird nach dem
118
+ Merge auf **0.79.0** gehoben.
@@ -0,0 +1,108 @@
1
+ # Änderungsantrag `CR-2026-109`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Der Aufräumer stirbt an seiner eigenen Erfolgsmeldung – und das Aufräumen hat ihn zum ersten Mal in der zweiten Kodierungsumgebung gefahren |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-20 |
8
+ | Betroffene Artefakte | `tests/erhebungen/baeume_loeschen.py`, `governance/DECISION_LOG.md` (**D-223** neu, `K-82` berichtigt), `docs/ROADMAP.md`, `CHANGELOG.md`, `VERSION`, `UEBERGABE.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | **Core** – Gegenstand ist ein Skript unter `<CORE_DIR>/tests/` und die Berichtigung eines Klärungspunkts |
10
+ | Art | Berichtigung nach einem gemessenen Fehlschlag – **kein Kontingent, kein Lauf am Client** |
11
+ | Dringlichkeit | **Regulär**, unmittelbar nach `0.79.0` |
12
+
13
+ ## 1. Anlass
14
+
15
+ Das Aufräumen nach dem Meßtag ist gefahren. `baeume_loeschen.py loeschen` hat getan,
16
+ was es soll – **46 Bäume gelöscht, achtunddreißig Verzeichnisverbindungen einzeln
17
+ gelöst, und der geteilte Bestand ist unberührt** (9798 Dateien / 101 089 283 Bytes vor
18
+ und nach dem Löschen, auf Datei und Byte gleich).
19
+
20
+ 🔴 **Und danach ist es abgestürzt – an seiner letzten Zeile:**
21
+
22
+ ```
23
+ node_modules nachher: 9798 Dateien / 101089283 Bytes
24
+ Traceback (most recent call last):
25
+ File "baeume_loeschen.py", line 78, in main
26
+ print("\U0001f7e2 geteilter Bestand unberuehrt")
27
+ UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f7e2'
28
+ ```
29
+
30
+ Das Skript hat **keine** Zeile `sys.stdout.reconfigure(encoding="utf-8")` und gibt in
31
+ seiner Erfolgsmeldung ein Emoji aus. In der Umgebung **ohne** `PYTHONIOENCODING=utf-8`
32
+ – also in der Standardumgebung dieses Arbeitsplatzes – kann es die Meldung nicht
33
+ schreiben.
34
+
35
+ ## 2. Warum es bis hierher nicht aufgefallen ist
36
+
37
+ `baeume_loeschen.py` ist mit dem Meßtag entstanden (`0.78.2`-Nachlauf, Befund 6 des
38
+ ersten vollständigen Aufbaus) und **am Meßtag nur im Erfolgsfall mit gesetztem
39
+ `PYTHONIOENCODING` gefahren worden**. Der Aufräumlauf nach dem Merge von `0.79.0` war
40
+ der erste in der anderen Kodierungsumgebung.
41
+
42
+ ➡️ **Das ist die Lehre von `0.67.0` an einem neuen Ort:** *Wer einen Lauf in zwei
43
+ Kodierungsumgebungen verlangt, prüft auch seinen **Berichtsweg** in beiden.* Der
44
+ Abnahmelauf des Prüfapparats fährt seit D-49 in beiden; **ein Werkzeug daneben fuhr nie
45
+ in beiden**, und mit `0.79.0` ist es in den Kern gewandert (D-222).
46
+
47
+ 🟢 **Ausgezählt über alle siebzehn Skripte unter `tests/erhebungen/`: genau eines ist
48
+ betroffen.** Die übrigen sechzehn tragen entweder die Zeile oder geben ausschließlich
49
+ ASCII aus. Es ist das **jüngste** – und das einzige, das nie einen vollständigen
50
+ Durchgang in beiden Umgebungen hatte.
51
+
52
+ 🟡 **Der Schaden war null:** Der Absturz kam **nach** der Gegenzählung und **nach**
53
+ dem Löschen.
54
+
55
+ 🔴 **Die naheliegende Verschärfung lautete: *die Abbruchmeldung trägt dasselbe Zeichen
56
+ und stirbt beim nächsten Mal genauso.*** Zeile 75 ist
57
+ `raise SystemExit("🔴 ABBRUCH: der geteilte Bestand hat sich geaendert!")` – also
58
+ genau die Meldung, die kommt, wenn das Skript gerade 9798 Dateien des
59
+ Übungsrepositoriums mitgelöscht hat.
60
+
61
+ 🟢 **Gemessen, und sie ist widerlegt.** Derselbe Text auf beiden Wegen, in beiden
62
+ Umgebungen:
63
+
64
+ | Weg | ohne `PYTHONIOENCODING` | mit `PYTHONIOENCODING=utf-8` |
65
+ |---|---|---|
66
+ | `print(…)` auf **stdout** | `UnicodeEncodeError`, exit 1 | Ampelzeile, exit 0 |
67
+ | `SystemExit(…)` auf **stderr** | `\U0001f534 ABBRUCH: …`, exit 1 – **die Meldung kommt an**, nur das Zeichen ist escapet | `🔴 ABBRUCH: …`, exit 1 |
68
+
69
+ ➡️ **Python schreibt die `SystemExit`-Meldung mit `backslashreplace`, `print` mit
70
+ `strict`.** Der **wichtige** Bericht trägt, der harmlose nicht – die Verschärfung wäre
71
+ richtig geklungen und falsch gewesen. *Den eigenen Lösungsvorschlag gegenprüfen, nicht
72
+ nur den Befund.*
73
+
74
+ ## 3. Vorlage zur Entscheidung
75
+
76
+ | # | Frage | Auflösung | Preis |
77
+ |---|---|---|---|
78
+ | **E1** | **Bekommt das Skript die Zeile, oder verliert es das Emoji?** | **Die Zeile.** `sys.stdout.reconfigure(encoding="utf-8")` steht in allen sechzehn anderen Skripten dieses Verzeichnisses und ist die Form, die dieses Projekt führt | **Verworfen: das Emoji streichen.** Dann wäre genau dieses Skript stumm, wo die übrigen sechzehn eine Ampel führen – und die nächste Nicht-ASCII-Ausgabe brächte den Absturz zurück. **Der Fehler ist nicht das Zeichen, sondern der fehlende Berichtsweg.** Gegenprobe zur Auswahl: Die Zeile behebt **jede** künftige Nicht-ASCII-Ausgabe des Skripts, das Streichen nur diese eine |
79
+ | **E2** | **Bekommen die übrigen sechzehn Skripte einen Wächter?** | **Nein – die Auszählung genügt, und sie steht im Protokoll dieses Antrags.** Sechzehn von siebzehn tragen die Zeile oder geben nur ASCII aus | Ein Wächter im Validator hätte hier **null** Gegenstand nach der Behebung, und das allein ist kein Grund gegen ihn (Prüfung 65 und 68 sind so gebaut). 🔴 **Der Grund ist ein anderer:** Ein Skript **ohne** Nicht-ASCII-Ausgabe braucht die Zeile nicht, und ein Zähler, der sie trotzdem verlangt, wäre *eine Bedingung, die mehr verlangt als ihr Kriterium fordert*. Ein Zähler, der die Ausgabe **analysiert**, müßte jeden `print`-Ausdruck auswerten – er prüfte die Schreibweise, nicht die Sache. **Preis, benannt:** Das nächste neue Skript kann denselben Fehler machen; was ihn fängt, ist der Durchgang in beiden Umgebungen, und der steht in der README dieses Verzeichnisses |
80
+ | **E3** | **Wie wird `K-82` berichtigt – die Bäume stehen nicht mehr?** | **Berichtigen, mit ausgewiesenem Grund.** `K-82` sagte *„die Bäume stehen noch"*; sie sind seit dem Aufräumlauf gelöscht, und die dritte Frage des Klärungspunkts (bestehende oder frische Bäume?) **entfällt damit** | 🔴 **Die Reihenfolge war falsch:** Die Übergabe von `0.79.0` ist **vor** dem Aufräumen geschrieben worden und hat einen Zustand behauptet, den das Aufräumen eine Viertelstunde später aufgehoben hat. **Das ist D-216 in der Sache, nicht in der Form:** Die Übergabe stand richtig im Release-Commit – aber ein Vorgang **nach** dem Merge hat ihre Aussage überholt. ➡️ **Wer eine Aufräumaufgabe hat, führt sie VOR der Übergabe aus, die den Zustand danach beschreibt.** **Verworfen: eine bloße Nachtragszeile** – *wer die Stelle liest und den Nachtrag nicht, übernimmt den Zustand* |
81
+
82
+ ## 4. Entscheidung
83
+
84
+ **E1 bis E3 wie vorgelegt entschieden** (`<FRAMEWORK_OWNER>`, 2026-09-20). Decision
85
+ Record **D-223**; `K-82` berichtigt. **Kriterium 2 unverändert 30** – keine Zelle wird
86
+ angefaßt.
87
+
88
+ ## 5. Abnahme
89
+
90
+ - `validate-framework.py --root .`: **0 Fehler, 0 Warnungen**.
91
+ - `probe-pruefungen.py .` in **beiden** Kodierungsumgebungen, voller Lauf.
92
+ - **Der eigentliche Nachweis steht außerhalb des Validators, und er ist ein Paar am
93
+ selben Gegenstand.** Eine Probebasis mit einem Wegwerfbaum, `loeschen` **ohne**
94
+ `PYTHONIOENCODING`:
95
+
96
+ | Stand | Ergebnis |
97
+ |---|---|
98
+ | **Vorstand** (unberührte Fassung, nur der Basispfad umgehängt) | `UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f7e2'`, **exit 1** |
99
+ | **behobener Stand** | vier Ausgabezeilen samt Ampel, **exit 0**, Gegenzählung 9798 / 101 089 283 unverändert |
100
+
101
+ 🔴 **`zaehlen` taugt als Gegenprobe NICHT** – der Zweig kehrt vor der Ampelzeile
102
+ zurück. Die erste Fassung dieses Abschnitts hat ihn vorgeschlagen; *eine Gegenprobe,
103
+ die den Gegenstand nicht erreicht, besteht immer.*
104
+ - **Auszählung über alle siebzehn Skripte:** eines betroffen, sechzehn nicht.
105
+
106
+ ## 6. Migrationshinweis
107
+
108
+ **Keine.** `tests/erhebungen/` wird von `install.py` in kein Projekt geschrieben.
@@ -0,0 +1,184 @@
1
+ # Änderungsantrag `CR-2026-110`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Der Vorbedingungsdurchgang des Nachlaufs – der Meßapparat schrieb ins Repositorium, drei Wächter hatten drei Sollwerte, und eine normative Kernregel war seit acht Releases nicht gelesen worden |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-20 |
8
+ | Betroffene Artefakte | `tests/erhebungen/` (`ablage.py` **neu**, elf Skripte geändert), `tests/scripts/validate-framework.py` (**Prüfung 69**), `tests/scripts/probe-pruefungen.py` (vier Einheiten), `tests/TEST_CATALOG.md`, `governance/DECISION_LOG.md` (**D-224** bis **D-228** neu, `K-83` entschieden, `K-84` neu, `K-82` berichtigt), `framework/skills/fw-review-support/TESTS.md` und `fw-mr-description/TESTS.md` (je eine Ergebniszelle **geöffnet**, kein Versionsheben – D-119), `onboarding/exercises/README.md` (`UEB-29` gebaut), `tests/protocols/2026-09-20-vorbedingungen-nachlauf-b4.md` (neu), `docs/ROADMAP.md`, `CHANGELOG.md`, `VERSION`, `UEBERGABE.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | **Core** – Gegenstand sind der Prüfapparat, der Meßapparat und zwei Ergebniszellen |
10
+ | Art | Vorbedingungsdurchgang vor einem bezahlten Meßtag – **kein Kontingent, kein Lauf am Client** |
11
+ | Dringlichkeit | **Regulär**, unmittelbar vor dem Nachlauf (`K-82`) |
12
+
13
+ ## 1. Anlass
14
+
15
+ Der Nachlauf von Bündel 4 ist der nächste Schritt und der erste Posten seit dem Meßtag,
16
+ der wieder Kontingent kostet. **Bei den letzten neunzehn Durchgängen in Folge fiel der
17
+ billigste Befund vor dem ersten Lauf.** Dieser Durchgang hat **sieben** ergeben, und
18
+ keiner von ihnen hat etwas gekostet.
19
+
20
+ ### 🔴 Befund 1: Der Meßapparat schreibt seit D-222 ins Repositorium
21
+
22
+ D-222 hat die Skripte mit `0.79.0` in den Kern geholt und ihre Belege ausdrücklich
23
+ draußen gelassen. **Fünf Skripte legten ihre Belege aber neben sich ab:**
24
+
25
+ ```
26
+ BELEGE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "belege")
27
+ ```
28
+
29
+ Solange sie daneben lagen, war das richtig. **Seit dem Umzug zeigt derselbe Ausdruck
30
+ hinein** – dazu zwei Skripte für die Prompts (`<CORE_DIR>/tests/prompts/`) und zwei für
31
+ die Zustandsaufnahmen. `lauf.py` legt das Verzeichnis selbst an, ohne zu fragen.
32
+
33
+ Der Nachlauf hätte **44 Belegdateien samt Sitzungsmitschriften mit Werkzeugeingaben**
34
+ versioniert – genau das, was D-222 vier Wochen zuvor verworfen hat, und **ohne daß
35
+ jemand es entschieden hätte.**
36
+
37
+ > *Wer einen Apparat umzieht, zieht seine relativen Pfade mit um – oder er verschiebt
38
+ > ihr Ziel, ohne es zu merken.*
39
+
40
+ ### 🔴 Befund 2: Drei Wächter derselben Vorbedingung, drei Sollwerte, keiner stimmte
41
+
42
+ | Skript | Sollwert im Quelltext |
43
+ |---|---|
44
+ | `umgebungen-bauen-b4.py` | `0.78.0` |
45
+ | `baeume-b4.py` | `0.78.0` |
46
+ | `historie-bauen-b4.py` | `0.77.0` |
47
+
48
+ **Das Übungsrepositorium stand auf `0.78.2`, der Kern auf `0.79.1`.** Die beiden
49
+ Wächter im normalen Pfad hätten abgebrochen – richtig, aber gegen den falschen
50
+ Sollwert. Der dritte wäre nie befragt worden, weil `baeume-b4.py` seinen Wert
51
+ durchreicht: **ein Sollwert, der nur in einer unbenutzten Voreinstellung steht, ist
52
+ eine Falle für den nächsten, der das Skript einzeln aufruft.**
53
+
54
+ ### 🔴 Befund 3: `K-83` war längst entschieden – das Werkzeug kannte es nur im Kommentar
55
+
56
+ D-120 schließt mit dem Satz *„Für Fund-Testfälle bleibt die erste Form nach D-116 die
57
+ einzige zulässige."* `auswerten-b4.py` führte die Unterscheidung in seinem
58
+ Kopfkommentar und druckte `W` und `T` für alle neunzehn Zellen gleich. Der gemessene
59
+ Fall (`SK-012-P01`: Probe grün, keine der beiden Dateien geöffnet) ist damit **kein
60
+ Grund für eine Ausnahmemenge**, sondern der Beleg, daß eine entschiedene Regel nicht im
61
+ Code stand.
62
+
63
+ ### 🔴 Befund 4: Eine Versionsänderung öffnet die Zellen ihres Testblatts
64
+
65
+ `08-skill-conventions.md` Abschnitt 7, normativ: *„Jede Versionsänderung erfordert die
66
+ erneute Ausführung der Testfälle in `TESTS.md`."*
67
+
68
+ **`0.79.0` hat `fw-review-support` auf `0.1.6` und `fw-mr-description` auf `0.1.5`
69
+ gehoben – in demselben Commit, der `SK-010-P02` und `SK-012-N04` abgenommen hat.** Die
70
+ Läufe fanden gegen `0.1.5` und `0.1.4` statt.
71
+
72
+ 🔴 **Und der Befund reicht weiter als Bündel 4.** Gemessen gegen die Git-Historie in
73
+ **Commit**-Auflösung – die Tagesauflösung trennt ihn nicht, weil Lauf und Anhebung in
74
+ demselben Release liegen:
75
+
76
+ | Lage | Skills | bestandene Zellen |
77
+ |---|---|---|
78
+ | Version **nach** dem Protokoll gehoben | `fw-repo-analyze`, `fw-tests` | 11 |
79
+ | Version im **selben Commit** wie das Protokoll | `fw-bugfix-prepare`, `fw-change-analyze`, `fw-code-explain`, `fw-plan`, `fw-mr-description`, `fw-review-support` | 24 |
80
+ | Version **vor** der Messung (in Ordnung) | `fw-change-small`, `fw-docs-update`, `fw-error-analyze`, `fw-refactor`, `fw-tests`¹ | – |
81
+
82
+ ¹ `fw-tests` erscheint in zwei Zeilen, weil seine bestandenen Zellen auf mehrere
83
+ Protokolle verweisen; gewertet ist die schärfere Lage.
84
+
85
+ **Acht von dreizehn Skills, zusammen 35 bestandene Zellen.** Wörtlich angewandt ginge
86
+ Kriterium 2 nicht auf 32, sondern auf rund **63**.
87
+
88
+ 🔴 **Die Bauform sieht jedesmal wie Sorgfalt aus:** Ein Meßtag findet einen Mangel am
89
+ Skill, das Release behebt ihn und hebt die Version – und macht damit die Abnahme
90
+ ungültig, die es im selben Zug einträgt. **D-119 hat genau diesen Kreis für die
91
+ Gegenrichtung schon benannt** und ihn nur für das *Eintragen* aufgelöst, nicht für das
92
+ *Beheben*.
93
+
94
+ ### 🔴 Befund 5: Die Berührungsprobe von `SK-010-N04` verlangt, was D-219 verboten hat
95
+
96
+ Ihre beiden Marken waren die Namen der zwei Übungs-Branches. **Seit `0.79.0` darf der
97
+ Skill Branchnamen nicht auflisten** – die Berechtigungsdatei sperrt jede Form von `git
98
+ branch` über ein Präfix. Eine Probe, die verlangt, was die geprüfte Schranke verbietet,
99
+ kann nur rot sein.
100
+
101
+ ### 🔴 Befund 6: Die Zahlen von `K-82` stimmten nicht
102
+
103
+ | Angabe in `K-82` | gemessen am 2026-09-20 |
104
+ |---|---|
105
+ | Kriterium 2 steht bei **31** | `zaehlen46.py`: **30** |
106
+ | **sieben** abgenommene Zellen | **acht** (sechs `SK-011`, dazu `SK-010-P02` und `SK-012-N04`) |
107
+ | **zwölf** ungemessene Zellen | **elf** |
108
+ | **24 Läufe** – *„zehn Zellen …, zwei davon mit zweitem Turn"* | **keine** der elf gehört zu `fw-docs-update`, und nur dieser Skill schreibt: **keine hat einen zweiten Turn**; 11 × 2 = **22** |
109
+
110
+ ### 🔴 Befund 7: Zwei Zähler desselben Bestands sagten Verschiedenes
111
+
112
+ Gefunden beim **Trockenlauf des Apparats**, der zu diesem Durchgang gehört. Die
113
+ Gegenzählung von `baeume_loeschen.py` meldete
114
+
115
+ ```
116
+ node_modules vorher: 9798 Dateien / 101089284 Bytes
117
+ node_modules nachher: 9798 Dateien / 101089284 Bytes
118
+ 🟢 geteilter Bestand unberuehrt
119
+ ```
120
+
121
+ – **ein Byte mehr** als die 101 089 283, die `0.79.1` und die Übergabe als *den*
122
+ Bestand führen. Verursacher: `node_modules/.vite/vitest/results.json`. **Das
123
+ Prüfmittel schreibt in den geteilten Bestand**, und `umgebungen-bauen-b4.py` fährt es
124
+ vor jedem Meßtag im Meßbaum.
125
+
126
+ 🔴 **`node-waechter.py` kennt das seit seinem Bau** und weist `.vite`, `.cache` und
127
+ `.tmp` gesondert aus; `baeume_loeschen.py` zählte roh. **Der Beleg des Aufräumens hing
128
+ am unschärferen der beiden Zähler.**
129
+
130
+ 🔴 **Und am Meßtag hätte der Wächter angeschlagen, wo nichts geschehen ist:**
131
+ `<TEST_COMMAND>` steht im `allow`-Korb des Meßbaums, also darf **jeder** Lauf das
132
+ Prüfmittel starten – und zwischen *vorher* und *nachher* von `node-waechter.py` liegt
133
+ die ganze Meßreihe.
134
+
135
+ > ➡️ *Ein Wächter über einen geteilten Bestand muß wissen, wer außer dem Prüfling noch
136
+ > hineinschreibt.*
137
+
138
+ ## 2. Was gemessen wurde, bevor entschieden wurde
139
+
140
+ - **Trockenlauf des Hebens** an einer Kopie des Übungsrepositoriums mit dem
141
+ `leitwerk-core` von `HEAD`: `install.py --update --dry-run` meldet **0 angelegt, 7
142
+ aktualisiert, 57 unverändert, 20 Projektdateien behalten** – die sieben sind
143
+ ausschließlich die Träger der drei gemessenen Skills. `--strict-overlay` danach:
144
+ **genau ein** Fehler, die kompatible Framework-Version.
145
+ - **Wirkungsnachweis zu D-224 als Paar:** `LW_ERHEBUNG` auf
146
+ `…/leitwerk-core/tests/erhebungen/belege` → Abbruch mit Begründung; auf das
147
+ Geschwisterverzeichnis `…/leitwerk-erhebungen-2026-09-20-b4n` → Ablage aufgelöst.
148
+ **Der zweite Fall ist der eigentliche:** Ein Präfixvergleich auf der Zeichenkette
149
+ hätte ihn als Kind von `…/leitwerk` gelesen.
150
+ - **Wirkungsnachweis zu D-226 an den 50 Belegen des Meßtags, ohne einen neuen Lauf:**
151
+ Die Probe meldet den Hauptlauf von `SK-012-P01` rot, dazu zehn der zwölf ungemessenen
152
+ Zellen. *Sie hätte D-218 aus den Belegen abgelesen.* **Sieben der acht abgenommenen
153
+ Zellen bleiben grün**; die achte ist `SK-012-N04`, die nach D-227 ohnehin nachfährt.
154
+ - **Die drei Sonden und die Gegenprobe zu Prüfung 69** laufen (`69a` bis `69c`, `69a`).
155
+ - **Wirkungsnachweis zu D-228 als Paar am selben Gegenstand:** Vorstand `9798 Dateien / 101 089 284 Bytes` (wandert mit jedem Testlauf), behobener Stand `9797 Dateien / 101 088 634 Bytes, dazu 1 Zwischenstandsdatei` – stabil, und der Zwischenstand steht daneben statt darin.
156
+
157
+ ## 3. Vorlage zur Entscheidung
158
+
159
+ | # | Frage | Auflösung | Preis |
160
+ |---|---|---|---|
161
+ | **E1** | **Wohin schreibt ein Meßapparat, der im Repositorium liegt?** | **Daneben, und der Ort wird gesagt:** `LW_ERHEBUNG`. Ohne die Angabe bricht jedes Skript ab, das eine Belegablage braucht; ein Pfad **im** Repositorium wird abgewiesen. **Prüfung 69** meldet jede Datei, die dort dennoch liegt | **Verworfen: ein Standardwert im Quelltext** – *eine Zahl, die gepflegt werden muß, wird nicht gepflegt* (D-153), und die drei `--erwarte`-Werte desselben Apparats haben es im selben Durchgang vorgeführt. **Verworfen: nur die Prüfung ohne den Wächter** – sie sieht erst, was schon geschrieben **ist**; die zweite Hälfte gehört davor, dieselbe Aufteilung wie bei D-205 zwischen Schnitt und Wächter. **Preis, benannt:** Jeder Aufruf braucht die Umgebungsvariable, und wer sie vergißt, bekommt einen Abbruch statt eines Laufs |
162
+ | **E2** | **Wird der Sollwert der Vorbedingung gepflegt oder abgeleitet?** | **Abgeleitet:** Sollstand ist die Version **dieses** Kerns (`ablage.kernversion()`). `--erwarte` bleibt als Übersteuerung | **Verworfen: die drei Werte gleichzuziehen** – dieselbe Pflege mit einem Zwischenschritt mehr, und sie lag an drei von drei Stellen daneben. **Verworfen: den Wert aus dem Übungsrepositorium nehmen** – dann prüfte der Wächter den Meßbaum gegen sich selbst (*die Null durch Konstruktion*, 0.59.1). 🟢 **Nebenwirkung, gewollt:** Der abgeleitete Wert beantwortet die erste Frage jedes Vorbedingungsdurchgangs – *hat ein Release den Gegenstand der Messung angefaßt?* – von selbst |
163
+ | **E3** | **Bekommt die Textform der Berührungsprobe eine Ausnahmemenge (`K-83`)?** | **Nein.** D-120 hat die Frage entschieden; die Gattung steht jetzt **je Marke** im Code, und das Urteil steht **je Lauf**. `K-83` Frage (3) entfällt damit | **Verworfen: die Ausnahmemenge** – sie bräuchte eine Antwort darauf, wer die übergebenen Grundlagen zählt (der Prompt ist maschinenlesbar, die genannten Dokumente sind es nicht), und sie ersetzte eine entschiedene Regel durch eine Heuristik. **Verworfen: die Gattung je Zelle** – `SK-010-N02` trägt beide in einer Zelle. 🔴 **Und die Umstellung hat sofort ihren eigenen zweiten Befund geliefert:** Je Turn geurteilt wäre `SK-011-N03` rot, weil der erste Turn `Generator` nennt und der zweite nicht – **eine abgenommene Zelle, ohne daß ein Lauf etwas versäumt hätte** (dritter Teil von D-218 an neuer Stelle) |
164
+ | **E4** | **Was folgt aus der Versionsnorm für die beiden abgenommenen Zellen?** | **Die Norm gilt wörtlich:** `SK-010-P02` und `SK-012-N04` gehen auf `offen` und fahren im Nachlauf mit. **Kriterium 2: 30 → 32.** Die Reichweite über Bündel 4 hinaus wird **nicht** hier entschieden, sondern als `K-84` geführt | **Verworfen: eine Ausnahme im Einzelfall** mit dem Diff als Beleg (der Diff berührt genau drei Stellen, und keine ist der Gegenstand der beiden Zellen) – dann ruhte eine Abnahme auf einer Auslegung, und die Norm bliebe unverändert daneben stehen. **Verworfen: die Norm zu präzisieren** – das ist die allgemeine Form derselben Auslegung, sie trifft **acht von dreizehn** Skills, und eine normative Kernregel wird nicht nebenbei in einem Vorbedingungsdurchgang geändert. **Preis, benannt:** vier zusätzliche Läufe, rund 4,90 USD – und **der erste Aufwärtsschritt in einer neun Schritte langen monotonen Kette.** ⚠️ *Ein Zähler, der nur fallen kann, sagt nichts darüber, ob seine Nullen noch gelten* |
165
+ | **E5** | **Wird `UEB-29` vor dem Nachlauf gebaut (`K-82` Frage 1)?** | **Ja.** Quelle `tools/praeparationen/ueb29-meldedienst.ts` im Übungsrepositorium, Ziel `frontend/src/api/meldedienst.ts`, je Meßbaum gesetzt; `historie-bauen-b4.py` bricht ab, wenn die Quelle fehlt **oder** wenn sie sich selbst als synthetisch ausweist | **Verworfen: ohne ihn zu fahren** – `SK-010-N02` liefe ein zweites Mal ohne Gegenstand für seine zweite Hälfte, und das Ergebnis stünde vorher fest. **Verworfen: ein Modul, das schon eine fremde Präparation trägt** (D-137): `books.ts` führt den Wartungshinweis für Assistenzwerkzeuge, ein Lauf träfe beides. Deshalb eine eigene Datei. **Preis, benannt:** eine weitere Datei im Übungsrepositorium, die nur eine Zelle braucht |
166
+ | **E6** | **Bekommen die drei Zellen aus D-221 den Zuschnitt `konf` (`K-82` Frage 2)?** | **Ja, und zwar drei statt zwei:** `SK-012-P02`, `SK-011-N04` und `SK-010-P02`. Die Klasse liegt seit `0.77.0` fertig im Apparat | 🟢 **`SK-012-P02` und `SK-010-P02` kosten nichts** – beide fahren ohnehin. **`SK-011-N04` kostet zwei Läufe** (nur der Kontrollauf, und `fw-docs-update` hat zwei Turns); ihr Hauptlauf vom Meßtag bleibt gültig, weil dieser Skill als einziger der drei **nicht** gehoben worden ist. 🔴 **Bei `SK-010-P02` bleibt der `risiko`-Kontrollauf vom 2026-09-20 als Beleg der ERSTEN Hälfte stehen** (Mindesttiefe), der Nachlauf liefert `konf` für die zweite (Fundstellen-Treue). **Preis, benannt:** Die erste Hälfte ist gegen Skillfassung `0.1.5` geschnitten, die zweite gegen `0.1.6` |
167
+
168
+ | **E7** | **Der geteilte `node_modules`-Bestand hat sich um ein Byte geändert – ist das ein Schreibzugriff?** | **Nein, und die beiden Zähler werden gleichgezogen.** `node_modules/.vite/vitest/results.json` gehört dem **Prüfmittel**, und `umgebungen-bauen-b4.py` fährt es vor jedem Meßtag. `node-waechter.py` weist solche Pfade seit seinem Bau gesondert aus; `baeume_loeschen.py` tut es ab sofort auch | 🔴 **Gefunden beim Trockenlauf des Apparats:** 101 089 284 Bytes gegen die 101 089 283 aus `0.79.1`. **Zwei Zähler desselben Gegenstands sagten Verschiedenes**, und der Beleg des Aufräumens hing am unschärferen. 🔴 **Der Wächter hätte am Meßtag angeschlagen, wo nichts geschehen ist:** `<TEST_COMMAND>` steht im `allow`-Korb, also darf jeder Lauf das Prüfmittel starten. **Verworfen: den Zwischenstand mitzuzählen** (eine Zahl, die jeder Testlauf verschiebt, taugt nicht als Beleg); **verworfen: `.vite` vor jedem Lauf zu löschen** (dann mißt der erste Lauf kalt und jeder folgende warm). **Preis, benannt:** Ein Schreibzugriff innerhalb von `.vite` bliebe unbemerkt – der Pfad steht in `<EXCLUDED_PATHS>` und im `deny`-Korb |
169
+
170
+ ## 4. Entscheidung
171
+
172
+ **E1 bis E7 wie vorgelegt entschieden** (`<FRAMEWORK_OWNER>`, 2026-09-20). Decision
173
+ Records **D-224** bis **D-228**; `K-83` entschieden, **`K-84` neu**, `K-82` berichtigt
174
+ und seine drei Fragen beantwortet. **Kriterium 2: 30 → 32** – zwei Zellen werden
175
+ geöffnet, keine geschlossen.
176
+
177
+ ## 5. Abnahme
178
+
179
+ - `validate-framework.py --root .`: **0 Fehler, 0 Warnungen**.
180
+ - `probe-pruefungen.py`: voller Lauf, alle Sonden und Gegenproben bestanden – darunter
181
+ die vier neuen Einheiten zu Prüfung 69.
182
+ - `zaehlen46.py`: **Katalog 4 | Testblätter 28 | Summe 32**.
183
+ - Protokoll: `leitwerk-core/tests/protocols/2026-09-20-vorbedingungen-nachlauf-b4.md`.
184
+ - **Kein Lauf am Client, kein Kontingent verbraucht.**
@@ -0,0 +1,127 @@
1
+ # Änderungsantrag `CR-2026-111`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Der Apparat lag tot auf dem Weg der Wiederaufnahme – Befehl 1 von 4 startete nicht, und Befehl 4 hätte keinen einzigen Lauf gefahren |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-21 |
8
+ | Betroffene Artefakte | `tests/erhebungen/stand-b4.py`, `reihe-b4.py`, `ablage.py` (`sollmenge()`, `laeufe()` **neu**), `tests/scripts/validate-framework.py` (**Prüfung 70**), `tests/scripts/probe-pruefungen.py` (fünf Einheiten), `tests/TEST_CATALOG.md`, `tests/erhebungen/README.md`, `governance/DECISION_LOG.md` (**D-229**, **D-230** neu), `tests/protocols/2026-09-21-wiederaufnahme-nachlauf-b4.md` (neu), `docs/ROADMAP.md`, `CHANGELOG.md`, `VERSION`, `UEBERGABE.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | **Core** – Gegenstand sind der Meßapparat und der Prüfapparat |
10
+ | Art | Befunde auf dem Weg der Wiederaufnahme – **kein Kontingent, kein Lauf am Client** |
11
+ | Dringlichkeit | **Regulär**, unmittelbar vor der Wiederaufnahme des Nachlaufs |
12
+
13
+ ## 1. Anlass
14
+
15
+ Der Nachlauf von Bündel 4 ist am 2026-09-20 mitten zwischen Haupt- und Kontrolläufen
16
+ abgebrochen, weil das Wochenkontingent ausging. Der Wiederaufnahmepunkt
17
+ (`WIEDERAUFNAHME.md`) nennt **vier Befehle**. Am 2026-09-21 hat sich vor dem ersten
18
+ bezahlten Kontrollauf gezeigt: **zwei davon tragen nicht.**
19
+
20
+ **Beide Befunde kosteten nichts, weil sie vor dem Lauf kamen.** Damit fiel bei den
21
+ letzten **zwanzig** Durchgängen in Folge der billigste Befund vor dem ersten Lauf.
22
+
23
+ ### 🔴 Befund 1: Befehl 1 von 4 startete seit `0.79.0` nicht
24
+
25
+ ```
26
+ python leitwerk-core\tests\erhebungen\stand-b4.py
27
+ → NameError: name 'S' is not defined
28
+ ```
29
+
30
+ Das Skript, dessen Kopfkommentar sagt *„EINE ZAHL IN EINER UEBERGABE IST EINE
31
+ MOMENTAUFNAHME, dieses Skript ist der Stand"*, bricht **beim Import** ab:
32
+
33
+ ```python
34
+ PROMPTS = os.path.join(os.path.dirname(S), "prompts")
35
+ ```
36
+
37
+ **`S` trug bis D-222 den Ablageort neben dem Skript.** Der Umzug in den Kern hat den
38
+ Namen entfernt und **zwei** Lesestellen stehen lassen – eine im Modulrumpf, eine in
39
+ `main()`. Seit `0.79.0` war das Werkzeug tot, und der Tag seiner Wiederaufnahme war der
40
+ Tag, an dem es auffiel.
41
+
42
+ > *Ein Werkzeug, das niemand fährt, verfällt lautlos – und der Tag, an dem es gebraucht
43
+ > wird, ist der Tag, an dem es fehlt.*
44
+
45
+ 🔴 **Und das ist der eigentliche Befund: keine der 69 Prüfungen konnte es sehen.**
46
+
47
+ | Prüfung | Was sie über den Apparat sagt |
48
+ |---|---|
49
+ | **45** | unter `leitwerk-core/` ist **kein Bytecode** versioniert – die **Abwesenheit** einer Datei |
50
+ | **69** | in der Erhebungsablage liegen nur `.py` und `.md` – die **Art** der Dateien |
51
+ | *keine* | ob eines dieser `.py` **läuft** |
52
+
53
+ Der Apparat hatte zwei Wächter über seinen **Ablageort** und keinen einzigen darüber,
54
+ ob seine Werkzeuge **starten**.
55
+
56
+ ### 🔴 Befund 2: Der nächste Befehl hätte keinen einzigen Lauf gefahren
57
+
58
+ `stand-b4.py` schließt mit `NAECHSTER BEFEHL: python reihe-b4.py`. Genau dieser Aufruf
59
+ **ohne Argumente** bricht ab:
60
+
61
+ ```
62
+ ABBRUCH: der Baum C:\lw-b4\sk011n01 fehlt - erst baeume-b4.py
63
+ ```
64
+
65
+ Der Nachlauf mißt **vierzehn Zellen / 28 Läufe**. Sein Promptverzeichnis trägt die
66
+ **fünfzig** Prompts des Meßtags, weil `prompts-schreiben-b4.py` alle schreibt und keine
67
+ Zelle kennt. Beide Skripte leiteten ihre Sollmenge **aus diesem Verzeichnis** ab:
68
+
69
+ | | gemeldet | fällig |
70
+ |---|---|---|
71
+ | `stand-b4.py`: Sollmenge | **50 Läufe / 19 Zellen** | 28 Läufe / 14 Zellen |
72
+ | `stand-b4.py`: Fehlbestand | **35** | 15 |
73
+ | `stand-b4.py`: Restkosten | **rund 37 USD** | rund 18 USD |
74
+ | `reihe-b4.py` ohne Argumente | **Abbruch, 0 Läufe** | 15 Läufe |
75
+
76
+ 🔴 **Gerettet hat den Nachlauf allein die Kennungsliste im Wiederaufnahmepunkt – und
77
+ sie weist sich selbst als *„Vorsicht, keine Pflicht"* aus.** Wer dem Apparat gefolgt
78
+ wäre statt der Liste, hätte einen Abbruch bekommen; wer der Zahl gefolgt wäre, hätte
79
+ das Doppelte veranschlagt.
80
+
81
+ > *Ein Verzeichnis ist kein Zuschnitt. Es ist der Zuschnitt von gestern.*
82
+
83
+ Das ist dieselbe Bauform wie D-224 (`LW_ERHEBUNG`) und D-218 (`--ziel`), eine Ebene
84
+ weiter: **Ein Ort, der aus der Umgebung erschlossen wird, gehört dem, der ihn zuletzt
85
+ gefüllt hat.**
86
+
87
+ ## 2. Was gemessen wurde, bevor entschieden wurde
88
+
89
+ - **Der Defekt selbst, an beiden Stellen:** `stand-b4.py` bricht zuerst im Modulrumpf
90
+ ab; nach der ersten Berichtigung bricht es in `main()` erneut ab. **Ein Wächter, der
91
+ nur die erste Fundstelle meldet, hätte hier zweimal gebraucht werden müssen.**
92
+ - **Die neue Prüfung gegen den gesamten Kern, vor der Berichtigung:** **ein** Befund
93
+ (`stand-b4.py`, zwei Fundstellen), sonst nichts – aus **zwanzig** `.py`-Dateien.
94
+ Zwölf davon nennen Modulglobale wie `__file__`; sie laufen, und die Prüfung schweigt
95
+ über sie. *Ein Wächter, der bei jedem Lauf meldet, wird abgeschaltet.*
96
+ - **Die berichtigte Sollmenge gegen den Zuschnitt der Erhebung:** `stand-b4.py` meldet
97
+ jetzt **28 Läufe, 14 Zellen, 1 davon mit zweitem Turn** – Zahl für Zahl das, was die
98
+ README dieser Erhebung als ihren Gegenstand nennt, und **13 von 28 gültig** zum
99
+ Zeitpunkt der Wiederaufnahme, wie es der Wiederaufnahmepunkt sagt. Die elf Prompts
100
+ ohne Meßbaum stehen ab sofort **namentlich** unter *„Nicht im Zuschnitt dieser
101
+ Erhebung"*.
102
+ - **Die drei Sonden und die zwei Gegenproben zu Prüfung 70** laufen (`70a` bis `70c`,
103
+ `70a` und `70b`). Sonde `70a` setzt den Defekt **wörtlich** so, wie er gefunden wurde.
104
+ - **Der Nachlauf ist wieder angefahren und vollständig:** 28 von 28 Belegen gültig, `is_error` bei keinem, zusammen **28,38 USD**; die fünfzehn Kontrolläufe dieses Tages kosteten **15,85 USD** gegen rund 18,40 gerechnet. Kein Beleg des ersten Teils ist angefaßt worden.
105
+ - **Wirkungsnachweis zu E2 nach dem Nachlauf, ohne einen Lauf:** `reihe-b4.py` **ohne Argumente** geht jetzt den ganzen Zuschnitt durch – 27 Kennungen, alle übersprungen, **gefahren: 0 | Kosten dieser Reihe: 0.00 USD** – und nennt die elf Prompts ohne Baum. **Vorher brach er beim ersten dieser elf ab.**
106
+
107
+ ## 3. Vorlage zur Entscheidung
108
+
109
+ | # | Frage | Auflösung | Preis |
110
+ |---|---|---|---|
111
+ | **E1** | **Wer bemerkt, daß ein Werkzeug des Kerns nicht mehr startet?** | **Prüfung 70.** Zu jeder `.py` unter `<CORE_DIR>/` wird die **Symboltabelle** gebaut, die der Interpreter selbst anlegt; gemeldet wird jeder global gelesene Name, den weder der Modulrumpf noch die eingebauten Namen binden – und jede Quelle, die er nicht übersetzt | **Verworfen: die Module zu importieren** – das führt den Modulrumpf aus; `ablage.py` bricht ohne `LW_ERHEBUNG` mit Absicht ab, `lauf.py` legt sein Belegverzeichnis an: **genau das, was D-222 verworfen hat.** *Eine Prüfung, die ihren Gegenstand verändert, mißt ihn nicht.* **Verworfen: `compile()`** – es übersetzt und kennt keine Bindung; der gemessene Fall wäre durchgelaufen. **Verworfen: ein Zähler über den Quelltext** (dieselbe Bauform, die D-223 verworfen hat). **Verworfen: den Anker an *keine `.py` im Kern* zu hängen** – der Validator ist selbst eine, der Anker wäre **durch Konstruktion** nie erreichbar (`0.59.1`); er hängt am Meßapparat, dessen Ablage nachweislich leer sein kann. **Preis, benannt:** Geprüft wird der **Name**, nicht der **Wert**; `S = None` und `os.path.dirname(S)` läuft durch – dieselbe Enthaltung wie bei Prüfung 68, und Gegenprobe `70b` hält sie fest |
112
+ | **E2** | **Woher kommt die Sollmenge einer Erhebung?** | **Aus ihren Meßbäumen.** `baeume-b4.py` legt genau die Bäume an, die der Zuschnitt nennt; `ablage.sollmenge()` leitet daraus **einmal** ab, und `stand-b4.py` wie `reihe-b4.py` benutzen dieselbe Ableitung. Ein Prompt **ohne** Baum ist die Zelle einer anderen Erhebung und wird **genannt** | **Verworfen: die Sollmenge zu pflegen** – *eine Zahl, die gepflegt werden muß, wird nicht gepflegt* (D-153), und derselbe Apparat hat es mit drei `--erwarte`-Werten vorgeführt (D-225). **Verworfen: das Promptverzeichnis je Erhebung zu beschneiden** – dann entschiede der Schreiber der Prompts über den Zuschnitt, und der Trockenlauf verlöre die Prompts, gegen die er prüft. **Verworfen: fehlende Bäume stillschweigend zu überspringen** – dann sähe *der Baum wurde nie gebaut* aus wie *die Zelle gehört nicht dazu*. **Preis, benannt:** Der Zuschnitt hängt an einem Zustand **außerhalb** des Repositoriums. Nach `baeume_loeschen.py` ist die Sollmenge leer – `stand-b4.py` sagt an dieser Stelle ausdrücklich, daß sein Stand dann **keine Aussage** über die Vollständigkeit ist, und `reihe-b4.py` bricht bei **null** Bäumen ab |
113
+ | **E3** | **Wird der Nachlauf vor oder nach der Abhilfe wieder angefahren?** | **Vor der Abhilfe, mit der Kennungsliste des Wiederaufnahmepunkts.** Die fünfzehn Kontrolläufe hängen an Bäumen, Vertrauenseinträgen und einer Zustandsaufnahme *vorher*, die seit dem 2026-09-20 stehen; jede Stunde Verzug ist eine Stunde, in der etwas davon verlorengehen kann | **Verworfen: erst die Abhilfe, dann fahren** – die Abhilfe berührt `reihe-b4.py`, und ein laufender Prozeß hat sein Modul bereits geladen; die Änderung hätte **auf den nächsten Lauf gewartet** und bis dahin nichts belegt. **Preis, benannt:** Die fünfzehn Kontrolläufe dieses Nachlaufs sind mit der **alten** Fassung gefahren – was sie messen, ändert das nicht (die Kennungen waren genannt), aber der Wirkungsnachweis zu E2 steht am **Stand**, nicht an der Reihe |
114
+
115
+ ## 4. Entscheidung
116
+
117
+ **E1 bis E3 wie vorgelegt entschieden** (`<FRAMEWORK_OWNER>`, 2026-09-21). Decision
118
+ Records **D-229** und **D-230**. **Kriterium 2 unverändert bei 32** – dieser Durchgang
119
+ schließt keine Zelle und öffnet keine.
120
+
121
+ ## 5. Abnahme
122
+
123
+ - `validate-framework.py --root .`: **0 Fehler, 0 Warnungen**.
124
+ - `probe-pruefungen.py`: **voller Lauf in beiden Kodierungsumgebungen, 283 Einheiten, 410 Meldezeilen, keine ohne `OK`** – oberhalb der Trennlinie **zeilengleich** (324,6 s und 324,4 s), darunter die fünf neuen Einheiten zu Prüfung 70.
125
+ - `zaehlen46.py`: **Katalog 4 | Testblätter 28 | Summe 32** – unverändert.
126
+ - Protokoll: `leitwerk-core/tests/protocols/2026-09-21-wiederaufnahme-nachlauf-b4.md`.
127
+ - **Kein Lauf am Client für die Befunde selbst, kein Kontingent verbraucht.**