@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,143 @@
1
+ # Migrationslauf: der Pilot von 0.41.0 auf 0.46.0 – und was daneben lag
2
+
3
+ | Feld | Wert |
4
+ |---|---|
5
+ | Gegenstand | **Kandidat 4 der Übergabe:** „Den Piloten heben und seinen Befund auflösen." Fünf Releases, 0.41.0 bis 0.46.0 |
6
+ | Anlass | Der Pilot (`devpacks/otp-generator`) stand fünf Releases zurück. **Der zweite echte Migrationslauf dieses Projekts** – der erste war 0.37.0 auf 0.41.0 am 2026-09-14 |
7
+ | Datum | 2026-09-15 |
8
+ | Prüfmethode | Der dokumentierte Weg aus `docs/ADOPTION_GUIDE.md` Abschnitt 3, mit einem Validatorlauf **vor**, **zwischen** und **nach** den Nacharbeiten. Die beiden Vorhersagen der Migrationshinweise werden **geprüft**, nicht geglaubt |
9
+ | Umgebung | Windows 11, Python 3.14.4; Pilot als Arbeitskopie, `core.autocrlf=true` |
10
+ | Ergebnis | **Beide Vorhersagen treffen.** Daneben ein Befund, den niemand gesucht hat und der nicht dem Piloten gehört: **versionierter Bytecode des Kerns, in zwei von zwei Projekten** |
11
+
12
+ ## 0. Der Lauf in einem Satz
13
+
14
+ **Der Migrationshinweis von 0.44.0 hat den Piloten namentlich angekündigt – und er hat
15
+ recht; der Befund, der wirklich zählt, stand daneben und in keinem Hinweis.**
16
+
17
+ ## 1. Der Ausgangsstand
18
+
19
+ | Messung | Wert |
20
+ |---|---|
21
+ | `leitwerk-core/VERSION` des Piloten | `0.41.0` |
22
+ | Validator des Piloten, `--strict-overlay` | **1 Fehler, 3 Warnungen** |
23
+ | `install.py --check` (aus dem Zielstand, gegen den Piloten) | **eine** abweichende Kerndatei: `.claude/skills/fw-tests/TESTS.md`; 57 unverändert, 20 Projektdateien |
24
+ | `hooks`-Block in `.claude/settings.json` | vorhanden, ein `PreToolUse`-Kommando |
25
+
26
+ Der eine Fehler und die drei Warnungen betreffen sämtlich Projektinhalte des Piloten (ein
27
+ Sperrbegriff aus der eigenen Vorgeschichte, zwei Quellen-URLs) sowie die bekannte
28
+ Pfadwarnung über die Laufzeitschicht des nicht installierten Packs. **Sie sind der
29
+ Ausgangswert, gegen den am Ende gemessen wird.**
30
+
31
+ ## 2. Der Weg
32
+
33
+ Nach `docs/ADOPTION_GUIDE.md` Abschnitt 3, in dieser Reihenfolge:
34
+
35
+ 1. `leitwerk-core/` des Piloten durch den Zielstand ersetzt.
36
+ 2. `python leitwerk-core/install.py --update` – **eine** Kerndatei aktualisiert, 57
37
+ unverändert, 20 Projektdateien unberührt.
38
+ 3. Validatorlauf **vor** den Nacharbeiten – die eigentliche Messung.
39
+
40
+ **Ein Nebenbefund am Werkzeug, der keiner ist.** `install.py --dry-run` **ohne**
41
+ `--update` bricht an einer bestehenden Installation mit einem Fehler ab: Er ist der
42
+ Trockenlauf einer *Erst*installation, und D-46 schützt dort vorhandene Projektdateien.
43
+ Die Meldung nennt den richtigen nächsten Schritt („Stammen sie aus einer früheren
44
+ Installation: `--update` verwenden"), also führt sie niemanden in die Irre. **Der
45
+ Trockenlauf einer Aktualisierung heißt `--update --dry-run`**, und er nannte dieselbe
46
+ eine Datei wie der echte Lauf.
47
+
48
+ ## 3. Das Ergebnis der Messung
49
+
50
+ Validatorlauf am Piloten, Framework `0.46.0`, **vor** den Nacharbeiten:
51
+
52
+ | Meldung | Anzahl | Vorhergesagt von |
53
+ |---|---|---|
54
+ | `'Bash(mvn -B -q compile)' steht im ask-Korb, und kein Platzhalter des Overlays erklärt diesen Befehl` | **1** | Migrationshinweis 0.44.0 |
55
+ | `Kompatible Framework-Version '0.41.0' passt nicht zu leitwerk-core/VERSION (0.46.0)` | 1 | Adoption Guide, Abschnitt 3 |
56
+ | Projektinhalte des Piloten (Ausgangswert) | 1 Fehler, 3 Warnungen | – |
57
+ | **Gesamt** | **3 Fehler, 3 Warnungen** | |
58
+
59
+ ### 3.1 Die erste Vorhersage: der Migrationshinweis von 0.44.0
60
+
61
+ Er lautet: *„Ein Projekt, dessen Berechtigungsdatei einen Befehl führt, den Abschnitt 5
62
+ oder 6 nicht für seinen Platzhalter erklärt, bekommt ab diesem Release einen Fehler. …
63
+ **Der Pilot ist genau dieser Fall** – eine Fundstelle, abgezählt."*
64
+
65
+ **Es ist genau eine.** Damit hat dieses Projekt zum zweiten Mal einen Hinweis über eine
66
+ fremde Installation eingelöst nachgerechnet – und zum zweiten Mal stimmt er.
67
+
68
+ ### 3.2 Die zweite Vorhersage: Prüfung 43 schweigt
69
+
70
+ Die Übergabe sagte: *„beim Heben bekommt er zusätzlich Prüfung 43 zu sehen. Sein
71
+ `hooks`-Block ist vorhanden (geprüft), also sollte sie dort schweigen."* **Sie schweigt.**
72
+ Das ist eine Vorhersage über ein *Ausbleiben*, und sie ist schwächer als eine über eine
73
+ Meldung – belegt ist damit nur, dass Prüfung 43 hier nichts findet, nicht dass sie hier
74
+ etwas fände, wenn es etwas gäbe. Der Beleg dafür steht in den Sonden zu 43.
75
+
76
+ ## 4. Die Auflösung – eine Entscheidung des Overlay Owners
77
+
78
+ Der Migrationshinweis sagt ausdrücklich: *„Die Auflösung ist eine Entscheidung des
79
+ Overlay Owners und keine des Frameworks: entweder die Zeile fällt, oder der Befehl wird
80
+ im Overlay als Wert des passenden Platzhalters erklärt."* Beide Wege wurden vorgelegt.
81
+
82
+ **Entschieden: Die Zeile fällt.** `Bash(mvn -B -q compile)` ist aus dem `ask`-Korb
83
+ genommen; der Befehl bleibt in Abschnitt 5 des Overlays gelistet und wirkt über die
84
+ Regelschicht.
85
+
86
+ | | Was dafür spricht | Was es kostet |
87
+ |---|---|---|
88
+ | **Die Zeile fällt** (gewählt) | Der Befehl füllt keinen der drei Befehlsplatzhalter; ein Eintrag von Hand ist nach D-76 **kein Ersatz** für einen vierten Schlitz, und die Overlay-Vorlage sagt das seit 0.43.0 wörtlich | Eine Anweisung statt einer technischen Schranke. **Gemessen kostet das nichts:** Das Client Pack hat am 2026-09-14 belegt, dass ein Befehl in keinem Korb in die Rückfrage läuft – dasselbe, was `ask` bewirkt |
89
+ | `<LINT_COMMAND>` füllen (verworfen) | Prüfung 42 wäre ebenso zufrieden, und der Schlitz ist frei | **Das Overlay behauptete dann, ein Kompilierlauf sei ein Lint-/Formatprüfbefehl.** Er ist keiner. Und Befund `Q-01` („es gibt keine erzwungene Formatprüfung") wäre verdeckt statt gelöst – **den Text an den Mechanismus biegen** ist der Befundtyp, den dieses Repositorium sonst bei anderen findet |
90
+
91
+ ## 5. Was daneben lag – und es gehört nicht dem Piloten
92
+
93
+ Beim Ersetzen von `leitwerk-core/` standen zwei `.pyc`-Dateien als „modified" im
94
+ Arbeitsbaum. Nachgezählt:
95
+
96
+ | Projekt | Framework-Stand | Versionierte Bytecode-Dateien unter `leitwerk-core/` | `.gitignore` deckt `__pycache__` |
97
+ |---|---|---|---|
98
+ | `devpacks/otp-generator` (Pilot) | 0.41.0 | **6** | nein |
99
+ | `devpacks/test-devin-framework` (Übungsrepo) | 0.45.0 | **2** | nein |
100
+ | `devpacks/leitwerk` (Framework selbst) | 0.46.0 | 0 | **ja** |
101
+
102
+ **Zwei von zwei.** Und das Framework-Repositorium hat die Zeile seit jeher – deshalb ist
103
+ der Fehler dort nie aufgefallen.
104
+
105
+ `docs/ADOPTION_GUIDE.md` Abschnitt 2 sagte zur `.gitignore` genau einen Satz: *„Übernimm
106
+ die `.gitignore` des Framework-Repositorys **nicht** unverändert"*, und nennt dann die
107
+ **vier Zeilen, die ein Projekt weglassen muss**. Welche es **braucht**, stand nirgends.
108
+
109
+ > **Die Lehre, die über den Fall hinausgeht:** Ein Leitfaden, der sagt, was man
110
+ > *weglassen* soll, ist nicht die Umkehrung eines Leitfadens, der sagt, was man
111
+ > *braucht*. Beide Listen sind nötig, und nur eine stand da. Das ist die Bauform des
112
+ > Befunds von 0.45.0, ein zweites Mal.
113
+
114
+ Behandelt als eigener Antrag: `CR-2026-069`, D-97, Prüfung 45 – siehe
115
+ `2026-09-15-wirkungsnachweise-0.47.0.md`.
116
+
117
+ ## 6. Die Nacharbeiten und der Abschlusswert
118
+
119
+ | Nacharbeit | Grund |
120
+ |---|---|
121
+ | `Bash(mvn -B -q compile)` aus dem `ask`-Korb | Prüfung 42, D-76, D-90; Entscheidung des Overlay Owners |
122
+ | Abschnitt 5 des Overlays: Freigabestufe auf „nur Regelschicht" | Der Text muss sagen, was gilt – sonst wäre die Zeile eine Zusage ohne Mechanismus |
123
+ | Steckbrief auf `0.46.0`, Overlay-Version auf `0.2.2` an allen drei Ablageorten, Zeile im Änderungsverlauf | Adoption Guide Abschnitt 3, Schritte 3 und 5 |
124
+ | Sechs `.pyc` aus der Versionierung, `__pycache__/` in die `.gitignore` | D-97 |
125
+
126
+ | Messung danach | Wert |
127
+ |---|---|
128
+ | Validator, `--strict-overlay` | **1 Fehler, 3 Warnungen** – zeichengleich mit dem Ausgangsstand |
129
+ | `install.py --check` | `Core ist auf dem Stand des Releases.` |
130
+
131
+ **Der Abschlusswert ist der Ausgangswert.** Was die Aktualisierung an Meldungen erzeugt
132
+ hat, ist vollständig abgearbeitet; was übrig bleibt, stand vorher da und gehört dem
133
+ Projekt. Gemergt als `umdiecke/otp-generator` PR #4.
134
+
135
+ ## 7. Was dieser Lauf nicht belegt
136
+
137
+ - **Er misst keine Sitzung.** Dass der Pilot mit der geänderten Berechtigungsdatei
138
+ arbeitet wie erwartet, ist nicht gemessen – hier ist eine Datei nachgezählt.
139
+ - **Er sagt nichts darüber, ob `mvn -B -q compile` läuft.** Auf diesem Arbeitsplatz sind
140
+ weder JDK noch Maven installiert; das war am 2026-09-13 so und ist es geblieben.
141
+ - **Die Zahl „sechs" ist eine Zählung des Zustands, keine der Ursache.** Wann und durch
142
+ welchen Commit die Dateien in die Versionierung kamen, ist nicht erhoben – für den
143
+ Befund ist es ohne Belang: Die fehlende Regel erklärt sie alle.
@@ -0,0 +1,127 @@
1
+ # Wirkungsnachweise 0.45.0 – Prüfungen 43 und 44
2
+
3
+ | Feld | Wert |
4
+ |---|---|
5
+ | Datum | 2026-09-15 |
6
+ | Gegenstand | Prüfung 43 (Hook-Block der Berechtigungsdatei, D-92) und Prüfung 44 (Register der Übungspräparationen, D-93) |
7
+ | Antrag | `CR-2026-067` |
8
+ | Grundlage | D-23: Eine Prüfung gilt erst als vorhanden, wenn sie eine bewusst gesetzte Sonde meldet |
9
+ | Ergebnis | **144 Sonden, 57 Gegenproben, 7 Selbstproben – alle bestanden, in beiden Kodierungsumgebungen zeilengleich** (Exit 0). Validator gegen `main`: 0 Fehler, 0 Warnungen |
10
+
11
+ ## 1. Der Sondenlauf
12
+
13
+ Abnahmeform seit D-49: zwei Läufe, einmal ohne und einmal mit `PYTHONIOENCODING=utf-8`.
14
+
15
+ | Umgebung | Sonden | Gegenproben | Selbstproben | Exit |
16
+ |---|---|---|---|---|
17
+ | ohne `PYTHONIOENCODING` | 144 | 57 | 7 | 0 |
18
+ | mit `PYTHONIOENCODING=utf-8` | 144 | 57 | 7 | 0 |
19
+
20
+ Beide Ausgaben sind **zeilengleich** (`diff` über alle Meldezeilen: kein Unterschied). Vor
21
+ diesem Release waren es 135 Sonden und 53 Gegenproben; die Zunahme ist genau die neue:
22
+ **neun Sonden und vier Gegenproben.**
23
+
24
+ | Kennung | Was sie herstellt | Erwartete Meldung |
25
+ |---|---|---|
26
+ | Sonde 43a (je Pack) | `hooks`-Block aus der Berechtigungsdatei entfernt | „trägt keinen 'hooks'-Block" |
27
+ | Sonde 43b (je Pack) | derselbe Zustand **plus** verwaiste Hook-Datei daneben | dieselbe Meldung **und** der Dateiname darin |
28
+ | Sonde 43c (je Pack) | Block vorhanden, `PreToolUse` leer | „ohne ein einziges PreToolUse-Kommando" |
29
+ | Gegenprobe 43a (je Pack) | Auslieferungszustand | **keine** der beiden Meldungen |
30
+ | Sonde 44a | eine Vorbedingung nennt `UEB-99`, das Register führt es nicht | „das Register in …" |
31
+ | Sonde 44b | das Register führt `UEB-98`, kein Testfall nennt es | „die kein Testfall nennt" |
32
+ | Sonde 44c | die Registerüberschrift ist umbenannt | „führt kein Register mehr" |
33
+ | Gegenprobe 44a | Auslieferungszustand | keine Meldung der Prüfung 44 |
34
+ | Gegenprobe 44b | eine **achte** Präparation, registriert **und** von einem Testfall gebraucht | keine Meldung der Prüfung 44 |
35
+
36
+ **Gegenprobe 44b ist die wichtigere Hälfte.** Eine Prüfung, die jede neue Kennung meldet,
37
+ bestünde jede Sonde. Sie belegt, dass der **zulässige** Weg – eine Präparation ergänzen und
38
+ sie registrieren – nicht teurer ist als der unzulässige.
39
+
40
+ ## 2. Was der erste Lauf gefunden hat, und es war die Sonde
41
+
42
+ Der erste Durchgang meldete **zwei Abweichungen, in beiden Umgebungen dieselben** – beide
43
+ in den neuen Sonden, keine in den Prüfungen:
44
+
45
+ | Abweichung | Ursache | Behebung |
46
+ |---|---|---|
47
+ | Sonde 43b fiel bei `claude-code` | Die Sonde legte eine Datei `hooks.json` an. Die kennt der Validator nicht: `VERWAISTE_HOOK_DATEIEN` führt **genau einen** Namen, `hooks.v1.json`, und den für beide Packs. **Geraten statt nachgesehen** | Beide Packs nutzen denselben Namen; die Herkunft steht als Kommentar an der Stelle |
48
+ | Gegenprobe 44a brach mit `TypeError` ab | Der generischen `gegenprobe()` wurde ein Tupel übergeben; sie nimmt genau einen Suchtext | Statt drei Meldungen aufzuzählen, sucht die Gegenprobe jetzt `"(D-93)"` – der Decision Record steht in **jeder** Meldung der Prüfung 44 und fängt damit auch künftige |
49
+
50
+ **Die zweite Behebung ist besser als der erste Entwurf**, und zwar aus einem Grund, der
51
+ über diesen Fall hinausgeht: Eine Gegenprobe, die eine Liste bekannter Meldungen
52
+ ausschließt, übersieht jede Meldung, die später dazukommt. Ein gemeinsamer Anker im Text
53
+ jeder Meldung schließt sie alle ein.
54
+
55
+ **Ein Nebenbefund, der nicht zu diesem Release gehört:** Prüfung 18 sucht bei **beiden**
56
+ Packs nach `hooks.v1.json` – einem Namen aus der `devin-desktop`-Welt. Ob `claude-code` je
57
+ eine eigene Hook-Datei angelegt hat und wie sie dort hieße, ist nicht erhoben. Die Prüfung
58
+ ist damit für dieses Pack möglicherweise wirkungslos, ohne dass es auffällt. Als Kandidat
59
+ geführt, nicht hier behoben.
60
+
61
+ ## 3. Gegenbeweis gegen den Vorstand
62
+
63
+ ### Prüfung 43 – an einem echten Projekt, nicht an einer Konstruktion
64
+
65
+ Zuschnitt: der **alte Stand des Übungsrepositoriums** (`a2dab6b`, Framework 0.13.0, via
66
+ `git archive`), sein `leitwerk-core/` durch das aus 0.45.0 ersetzt, **kein** `--update` –
67
+ damit die Projektdateien den Auslieferungszustand behalten.
68
+
69
+ ```
70
+ FEHLER .devin/config.json: trägt keinen 'hooks'-Block. […] Daneben liegt
71
+ .devin/hooks.v1.json: Dort steht eine Regelmenge, die aussieht, als gälte sie —
72
+ der Client liest diese Datei nicht (D-32). […] (D-92)
73
+ ```
74
+
75
+ **Die Prüfung findet den Befund, der sie ausgelöst hat**, und ihre Meldung nennt beide
76
+ Hälften der Migration. Die Fehlerzahl ist dabei nachgezählt und nicht nur vorhanden:
77
+
78
+ | Fehler | Herkunft |
79
+ |---|---|
80
+ | 14 | dieselben, die der 0.44.0-Validator meldete (8× Prüfung 42 unerklärt, 3× verlorener Anker, 1× Prüfung 37, 1× Steckbriefversion, 1× Importsteuerung) |
81
+ | **+1** | **Prüfung 43** – der Gegenstand dieses Nachweises |
82
+ | +1 | `AGENTS.md:3` – eine Prüfung, die zwischen 0.13.0 und heute dazugekommen ist. **Gehört zum Zuschnitt, nicht zum Befund:** Ohne `--update` ist die Wurzel-Anweisungsdatei noch die von 0.13.0 |
83
+ | **16** | **gemessen** |
84
+
85
+ ### Prüfung 44 – der Gegenbeweis ist konstruktionsbedingt stumm, und das gehört gesagt
86
+
87
+ Zuschnitt: der Vorstand `22b8949` (0.44.0) via `git archive`, geprüft mit dem Validator aus
88
+ 0.45.0 über `--root`.
89
+
90
+ ```
91
+ FEHLER leitwerk-core/onboarding/exercises/README.md: führt kein Register mehr
92
+ (gesucht: '### Register der Präparationen'). […] (D-93)
93
+ ```
94
+
95
+ **Das ist ein Treffer, aber nicht der Gegenstand.** Die Prüfung meldet dort den verlorenen
96
+ Anker, weil das Register mit **diesem** Release entsteht; über Präparationen sagt der
97
+ Vorstand nichts, weil er keine kennt. Der Wirkungsnachweis für Prüfung 44 ruht deshalb
98
+ allein auf ihren drei Sonden und zwei Gegenproben – **nicht** auf einem Fund im Vorstand.
99
+ Das ist dieselbe Lage wie am 2026-09-13 bei Prüfung 33 und sie wird hier genauso
100
+ ausgewiesen, statt eine Zahl zu nennen, die mehr verspricht.
101
+
102
+ Die 46 Fehler, die derselbe Lauf insgesamt meldet, sind **kein Messwert über den Vorstand**:
103
+ Ein neuer Validator gegen einen alten Baum fällt in die Ankertests der Prüfungen, deren
104
+ Gegenstand dort noch fehlt. Das ist bekannt (Protokoll zu 0.33.0) und hier nur erwähnt,
105
+ damit die Zahl niemanden in die Irre führt.
106
+
107
+ ## 4. Wo die Prüfungen im eigenen Repositorium stehen
108
+
109
+ | Prüfung | Läuft im Repo-Lauf? | Findet sie dort etwas? |
110
+ |---|---|---|
111
+ | 43 | **ja** – die lokale Testinstallation ist `devin-desktop` und führt ihre Hooks in der Berechtigungsdatei | **nein**, sie trägt ihren Block. Das ist der erwartete Zustand und kein Beleg für Wirkung |
112
+ | 44 | **ja** – beide Register liegen im Repositorium | **nein**, sieben registrierte und sieben gebrauchte Kennungen decken sich |
113
+
114
+ **Prüfung 43 entgeht damit nicht dem Befund B02** (eine Prüfung, die im eigenen
115
+ Repositorium gar nicht ausgeführt wird): Sie läuft. Sie meldet nur nichts, weil hier nichts
116
+ zu melden ist.
117
+
118
+ ## 5. Was dieser Nachweis nicht leistet
119
+
120
+ - **Er belegt, dass die Prüfungen wirken, nicht dass ihre Gegenstände richtig sind.** Ob der
121
+ Hook-Block, den eine Installation trägt, den richtigen Hook aufruft, prüfen 15, 16 und 17
122
+ – nicht 43.
123
+ - **Prüfung 44 gleicht zwei Register ab, nicht ein Register gegen die Wirklichkeit.** Ob
124
+ `UEB-02` im Übungsrepository wirklich unter dem genannten Pfad liegt, sieht kein Validator
125
+ dieses Repositoriums.
126
+ - **Kein Lauf gegen einen Client.** Dass ein wiederhergestellter Hook in einer Sitzung
127
+ tatsächlich auslöst, ist hier nicht gemessen – nur, dass die Konfiguration dasteht.
@@ -0,0 +1,193 @@
1
+ # Wirkungsnachweise 0.46.0 – der Umbau des Sondenskripts
2
+
3
+ | Feld | Wert |
4
+ |---|---|
5
+ | Datum | 2026-09-15 |
6
+ | Gegenstand | Ausführungsplan, Nebenläufigkeit, Name und Beschreibungssatz je Einheit, Laufzeitauswertung, Aufräumer (D-94 bis D-96) |
7
+ | Antrag | `CR-2026-068` |
8
+ | Grundlage | D-23 und D-49. **Hier ist der Gegenbeweis kein Fallen von Sonden, sondern ein Abgleich:** Der Umbau ändert keine Prüfung, also darf er keine Ergebniszeile ändern außer den angekündigten |
9
+ | Ergebnis | **144 Sonden, 57 Gegenproben, 10 Selbstproben – alle bestanden, in beiden Kodierungsumgebungen zeilengleich und zwischen seriellem und nebenläufigem Lauf zeilengleich** (Exit 0). Validator: 0 Fehler, 0 Warnungen |
10
+
11
+ ## 1. Der Vorstand – gemessen, bevor etwas gebaut wurde
12
+
13
+ `python leitwerk-core/tests/scripts/probe-pruefungen.py .` gegen `main` (`750ce10`, 0.45.0):
14
+
15
+ | Größe | Wert |
16
+ |---|---|
17
+ | Laufzeit | **13 min 07 s** (787 s), streng seriell |
18
+ | Ergebniszeilen | **208** – 144 Sonden, 57 Gegenproben, 7 Selbstproben |
19
+ | Ausführungseinheiten | **128** – 79 `sonde(`, 6 `sonde_ohne_wert(`, 29 `gegenprobe(`, 14 `buendel(` |
20
+ | Exit-Code | 0 |
21
+
22
+ Der Lauf sagte nicht, wo die dreizehn Minuten hingehen. Er wird **zweimal je Release**
23
+ gefahren (D-49), also kostet ein Release allein hier über eine halbe Stunde.
24
+
25
+ ## 2. Die vier Abnahmeläufe
26
+
27
+ | # | Lauf | Zeilen | Sonden | Gegenproben | Selbstproben | Exit | Wanduhr |
28
+ |---|---|---|---|---|---|---|---|
29
+ | **L1** | `--bahnen 8`, ohne `PYTHONIOENCODING` | 227 | 144 | 57 | 10 | 0 | **110,6 s** |
30
+ | **L2** | `--bahnen 8`, mit `PYTHONIOENCODING=utf-8` | 227 | 144 | 57 | 10 | 0 | **110,8 s** |
31
+ | **L3** | `--bahnen 1`, ohne `PYTHONIOENCODING` | 227 | 144 | 57 | 10 | 0 | **827,4 s** (13 min 47 s) |
32
+ | **L4** | `--bahnen 16`, ohne `PYTHONIOENCODING` | 227 | 144 | 57 | 10 | 0 | **79,7 s** |
33
+
34
+ **Drei Vergleiche, alle über die 227 Zeilen oberhalb der Trennlinie:**
35
+
36
+ | Vergleich | Was er belegt | Ergebnis |
37
+ |---|---|---|
38
+ | L1 gegen L2 | die Abnahmeform nach D-49 – beide Kodierungsumgebungen | **kein Unterschied** |
39
+ | L1 gegen L3 | dass die Nebenläufigkeit die Ausgabe nicht verändert – weder Reihenfolge noch Inhalt | **kein Unterschied** |
40
+ | L1 gegen L4 | dass die Bahnenzahl die Ausgabe nicht verändert | **kein Unterschied** |
41
+
42
+ **Der zweite Vergleich ist der eigentliche Nachweis dieses Releases.** Er belegt, dass die
43
+ Sammlung der Zeilen und ihre Ausgabe in der Reihenfolge der **Anmeldung** genau das leisten,
44
+ was sie versprechen: Der nebenläufige Lauf ist vom seriellen nicht zu unterscheiden.
45
+
46
+ ## 3. Der Abgleich gegen 0.45.0 – 29 Zeilen und keine weitere
47
+
48
+ `diff` über die Ergebniszeilen, 208 gegen 227:
49
+
50
+ | Art der Abweichung | Anzahl | Warum |
51
+ |---|---|---|
52
+ | verlängerte Beschreibungssätze | **10** | Einzelsonden, die statt eines Satzes nur eine Kennung trugen (D-95) |
53
+ | neue Bündelkopfzeilen | **16** | jedes Bündel nennt jetzt seinen Namen und seinen Satz |
54
+ | neue Selbstprobenzeilen | **3** | `B1` (Wortzahl), `A1` und `A2` (der Aufräumer) |
55
+ | **sonst** | **0** | |
56
+
57
+ **Die Zahl je Art ist unverändert: 144 Sonden, 57 Gegenproben – vorher wie nachher.** Keine
58
+ Prüfung ist angefasst worden, und keine Sonde hat ihren Gegenstand gewechselt.
59
+
60
+ ## 4. Der erste Fallstrick: Prüfung 40 hätte den Umbau nicht überlebt
61
+
62
+ Prüfung 40 rechnet die Sondenmenge aus **zwei wörtlichen Mustern** des Sondenskripts aus
63
+ (D-86): dem Aufruf `sonde(` mit seiner Kennung und `melde(` mit der Art `SONDE` und ihr.
64
+ Ein Umbau auf ein Register mit eigener Schreibweise hätte die Sonden unsichtbar gemacht –
65
+ und Prüfung 40 hätte **leise bestanden**, denn eine leere Menge ist keine Abweichung.
66
+
67
+ **Nachgezählt vor und nach dem Umbau, mit demselben Ausdruck, den der Validator verwendet:**
68
+
69
+ | Stand | Prüfungsnummern mit Sonde | Ausgerechnete Schreibweise |
70
+ |---|---|---|
71
+ | 0.45.0 | 6, 18, 19, 20, …, 44 | `6 und 18 bis 44` |
72
+ | 0.46.0 | 6, 18, 19, 20, …, 44 | `6 und 18 bis 44` |
73
+
74
+ Deshalb ist die Aufrufstelle jeder Sonde **zeichengleich** geblieben; geändert hat sich
75
+ allein, **wann** der Aufruf seine Arbeit tut. Und deshalb heißt der Anmelder `eintragen()`:
76
+
77
+ > `anmelden("SONDE", "18b", …)` enthält die Zeichenfolge `melde(` **nicht** – dort folgt auf
78
+ > `melde` ein `n`. `anmelde("SONDE", "18b", …)` hätte sie enthalten, und Prüfung 40 hätte
79
+ > eine Sonde `18b` gezählt, die es nicht gibt. **Der Abstand zwischen beiden Namen ist ein
80
+ > Buchstabe.** Statt ihn zu riskieren, heißt die Funktion `eintragen()`.
81
+
82
+ ## 5. Wo die Zeit liegt – und wo die Grenze der Nebenläufigkeit
83
+
84
+ Aus dem Auswertungsblock von L1 (874,2 s Rechenzeit in 110,6 s Wanduhr, Faktor 7,9):
85
+
86
+ | Einheit | Laufzeit | Anteil an der Rechenzeit |
87
+ |---|---|---|
88
+ | `sonden_schlitzinhalte` | **64,0 s** | 7,3 % |
89
+ | `sonden_kandidatenpruefung` | 43,8 s | 5,0 % |
90
+ | `sonden_aktivierungspruefung` | 37,2 s | 4,3 % |
91
+ | `sonden_berechtigungskoerbe` | 31,2 s | 3,6 % |
92
+ | `sonden_hookblock` | 30,4 s | 3,5 % |
93
+ | `sonden_skill_deny` | 21,4 s | 2,4 % |
94
+ | **sechs Bündel zusammen** | **228 s** | **26 %** |
95
+ | **114 Einzeleinheiten, je rund 5,8 s** | **rund 645 s** | **74 %** |
96
+
97
+ **Zwei Zahlen, die zusammen etwas sagen, das keine allein sagt.** Die Einzeleinheiten
98
+ tragen drei Viertel der *Rechenzeit* und sind beliebig teilbar; die Bündel tragen ein
99
+ Viertel und sind **gar nicht** teilbar. Damit ist die Wanduhr nach unten begrenzt:
100
+
101
+ > **Kein noch so breiter Lauf kommt unter 64,0 s**, solange `sonden_schlitzinhalte` die
102
+ > längste Einheit ist – denn ein Bündel ist die kleinste Einheit, nie seine Teile (F3). Die
103
+ > Schranke ist keine Schwäche der Umsetzung, sondern die Entscheidung selbst, sichtbar
104
+ > gemacht.
105
+
106
+ **L4 misst das nach, und das Ergebnis ist zweischneidig:**
107
+
108
+ | Lauf | Bahnen | Wanduhr | Rechenzeit | Faktor |
109
+ |---|---|---|---|---|
110
+ | L3 | 1 | 827,4 s | 827,4 s | – |
111
+ | L1 | 8 | **110,6 s** | 874,2 s | 7,9 |
112
+ | L4 | 16 | **79,7 s** | **1079,6 s** | 13,5 |
113
+
114
+ Die doppelte Bahnenzahl bringt **28 % weniger Wanduhr** und kostet **23 % mehr
115
+ Rechenzeit**. Das ist der Beleg dafür, dass nicht die Rechenzeit der Engpass ist,
116
+ sondern die Platte: Jede Einheit legt eine eigene Kopie des Repositoriums an, und
117
+ sechzehn gleichzeitige Kopiervorgänge machen jeden einzelnen langsamer. **Die 79,7 s
118
+ liegen zudem schon nahe an der Schranke von 64,0 s** – mehr Bahnen können die
119
+ längste Einheit nicht teilen.
120
+
121
+ **Deshalb bleibt die Vorgabe bei 8 und ist eine feste Zahl:** Sie holt 7,9 von
122
+ theoretisch 8 heraus, ohne Rechenzeit zu verbrennen. Was der beste Wert auf einer
123
+ anderen Maschine ist, ist damit nicht gesagt – und soll es nicht sein.
124
+
125
+ ## 6. Der Aufräumer – und warum er eine eigene Selbstprobe bekommt
126
+
127
+ An **vierzehn** Stellen stand `shutil.rmtree(..., ignore_errors=True)`, während der
128
+ Kopfsatz des Skripts zusagt: *„Gearbeitet wird auf einer Kopie; das Repositorium selbst
129
+ bleibt unberührt."* Die zweite Hälfte dieser Zusage – dass die Kopie danach wieder weg ist
130
+ – hatte **keinen Mechanismus**.
131
+
132
+ `aufraeumen()` versucht dreimal über 1,5 s und meldet danach mit Pfad und Grund. **Eine
133
+ Meldung, die geschrieben und nie ausgelöst wurde, ist nach D-23 nicht vorhanden** – deshalb
134
+ zwei Selbstproben:
135
+
136
+ | Kennung | Was sie herstellt | Erwartung |
137
+ |---|---|---|
138
+ | `A1` | ein gewöhnliches Arbeitsverzeichnis mit einer Datei darin | gelöscht, **und keine Zeile im Lauf** |
139
+ | `A2` | ein Verzeichnis, das sich nicht löschen lässt | `AUFRAEUMER … bleibt liegen` mit dem Pfad, und **eine** Abweichung |
140
+
141
+ **Der Ausfall muss je Betriebssystem anders hergestellt werden, und das ist der Teil, an
142
+ dem die Probe sonst nichts gemessen hätte:**
143
+
144
+ | System | Mechanismus | Warum der andere nicht trägt |
145
+ |---|---|---|
146
+ | Windows | eine offene Datei im Verzeichnis | gemessen: `PermissionError [WinError 32]` |
147
+ | POSIX | dem Verzeichnis das Schreibrecht entziehen (`0o500`) | eine offene Datei verhindert das Löschen dort **nicht** – die Probe wäre eine Zeile, die nichts misst |
148
+
149
+ **Gemessen wird gegen eine Hilfseinheit**, nicht gegen die laufende: Der Aufräumer meldet in
150
+ die Einheit, in der er gerufen wird. Täte er das hier, zählte der absichtlich
151
+ herbeigeführte Ausfall als Abweichung des Laufs – die Selbstprobe erzeugte den Befund, den
152
+ sie misst.
153
+
154
+ **Gemessen ist damit, dass die Meldung kommt, wenn sie kommen muss.** Nicht gemessen ist,
155
+ ob drei Versuche über 1,5 s für den echten Fall reichen: In keinem der vier Abnahmeläufe
156
+ ist eine Kopie unbeabsichtigt liegen geblieben.
157
+
158
+ ## 7. Selbstprobe B1 – und was sie nicht leistet
159
+
160
+ `B1` zählt die Worte jedes Beschreibungssatzes und meldet jeden Ausreißer. Vor dem Umbau
161
+ hätte sie **24 Abweichungen** gemeldet: zehn zu kurze Einzelsätze und vierzehn Bündel ohne
162
+ Satz.
163
+
164
+ **Ihre Grenze steht in ihrem Kopfkommentar, weil sie sonst mehr verspräche, als sie
165
+ leistet:** Sie zählt **Worte, nicht Sinn**. Ein Satz aus achtzehn Füllwörtern besteht sie.
166
+ Die untere Grenze fängt die Kennung, die sich als Satz ausgibt („Pack ohne
167
+ Auskunftsabschnitt", drei Worte), die obere den Absatz, der sich in eine Zeile verirrt hat.
168
+ Dazwischen entscheidet der Mensch, und das ist Absicht.
169
+
170
+ ## 8. Was dieses Protokoll nicht belegt
171
+
172
+ - **Nicht, dass acht Bahnen der beste Wert sind.** Gemessen sind drei Punkte auf **einer**
173
+ Maschine mit 32 Kernen und einer SSD. Auf einem Rechner mit anderer Platte kann die
174
+ Kurve anders liegen; die Vorgabe ist bewusst eine feste Zahl und keine Eigenschaft der
175
+ Maschine, sonst wären zwei Laufzeiten unvergleichbar.
176
+ - **Nicht, dass die Laufzeiten reproduzierbar sind.** Sie sind es nicht, und genau deshalb
177
+ stehen sie unterhalb der Trennlinie. Was sie belegen, ist die **Verteilung**.
178
+ - **Nicht, welcher Fall innerhalb eines Bündels teuer ist.** Ein Bündel bekommt eine Zahl,
179
+ nicht fünfunddreißig. Wer wissen will, welcher der sieben Eingriffe in
180
+ `sonden_berechtigungskoerbe` die Zeit kostet, erfährt es aus diesem Lauf nicht.
181
+ - **Nicht, dass die Prüfungen richtig sind.** Dieses Release fasst keine Prüfung an; es
182
+ verändert das Werkzeug, mit dem sie gemessen werden. Die Grenze jeder einzelnen Prüfung
183
+ steht unverändert in ihrem Kopfkommentar.
184
+
185
+ ## 9. Anmerkung zur Reihenfolge
186
+
187
+ Die vier Abnahmeläufe L1 bis L4 liefen gegen den Arbeitsbaum **ohne diese Datei**, die es
188
+ zum Zeitpunkt der Läufe noch nicht gab – jedes Protokoll hat dieses Problem, weil es
189
+ über Läufe berichtet, die vor ihm stattfanden.
190
+
191
+ **Deshalb ein fünfter Lauf gegen den vollständigen Baum**, so wie er in den Commit geht:
192
+ `--bahnen 8`, ohne `PYTHONIOENCODING`, 227 Zeilen, Exit 0, 111,7 s – und **zeilengleich
193
+ zu L1**. Der Validatorlauf gegen denselben Baum meldet 0 Fehler und 0 Warnungen.
@@ -0,0 +1,149 @@
1
+ # Wirkungsnachweise 0.47.0 – Prüfung 45 und der erste Fall des Aufräumers
2
+
3
+ | Feld | Wert |
4
+ |---|---|
5
+ | Datum | 2026-09-15 |
6
+ | Gegenstand | Prüfung 45 (Bytecode des Kerns, D-97) und die Behebung am Aufräumer aus 0.46.0 |
7
+ | Antrag | `CR-2026-069` |
8
+ | Grundlage | D-23: Eine Prüfung gilt erst als vorhanden, wenn sie eine bewusst gesetzte Sonde meldet. Dazu der Gegenbeweis gegen den Vorstand |
9
+ | Ergebnis | **148 Sonden, 59 Gegenproben, 11 Selbstproben – alle bestanden, in beiden Kodierungsumgebungen zeilengleich** (Exit 0). Validator: 0 Fehler, 0 Warnungen. **Gegenbeweis gegen 0.46.0: vier Fundstellen, und beide Gegenproben bestehen dort** |
10
+
11
+ ## 1. Der Befund, abgezählt
12
+
13
+ | Projekt | Framework-Stand | Versionierte `.pyc` unter `leitwerk-core/` | `.gitignore` deckt `__pycache__` |
14
+ |---|---|---|---|
15
+ | `devpacks/otp-generator` (Pilot) | 0.41.0 | **6** | nein |
16
+ | `devpacks/test-devin-framework` (Übungsrepo) | 0.45.0 | **2** | nein |
17
+ | `devpacks/leitwerk` (Framework selbst) | 0.46.0 | 0 | **ja** |
18
+
19
+ **Zwei von zwei Projekten.** Der Weg zum Befund steht in
20
+ `2026-09-15-migrationslauf-pilot-0.46.0.md`, Abschnitt 5.
21
+
22
+ ## 2. Der Sondenlauf
23
+
24
+ Abnahmeform seit D-49: zwei Läufe, einmal ohne und einmal mit `PYTHONIOENCODING=utf-8`.
25
+ Seit 0.46.0 zusätzlich der Vergleich zwischen seriellem und nebenläufigem Lauf.
26
+
27
+ | Lauf | Zeilen | Sonden | Gegenproben | Selbstproben | Exit | Wanduhr |
28
+ |---|---|---|---|---|---|---|
29
+ | `--bahnen 8`, ohne `PYTHONIOENCODING` | 235 | 148 | 59 | 11 | 0 | **118,2 s** |
30
+ | `--bahnen 8`, mit `PYTHONIOENCODING=utf-8` | 235 | 148 | 59 | 11 | 0 | **120,6 s** |
31
+ | `--bahnen 1`, ohne `PYTHONIOENCODING` | 235 | 148 | 59 | 11 | 0 | **911,0 s** |
32
+
33
+ **Beide Ausgaben sind zeilengleich** – `diff` über die 235 Ergebniszeilen oberhalb der Trennlinie: kein Unterschied. Und der serielle Lauf ist **zeilengleich zum nebenläufigen** – die Zusage von 0.46.0 trägt auch die neuen Einheiten, einschließlich derer, die sich ein Repositorium anlegen.
34
+
35
+ Vor diesem Release waren es 144 Sonden, 57 Gegenproben und 10 Selbstproben; die Zunahme
36
+ ist genau die neue: **vier Sonden, zwei Gegenproben, eine Selbstprobe.**
37
+
38
+ | Kennung | Was sie herstellt | Erwartete Meldung |
39
+ |---|---|---|
40
+ | Sonde 45a | Die Deckungszeile fällt aus der `.gitignore` | „deckt den Bytecode des Kerns nicht ab" |
41
+ | Sonde 45b | Die `.gitignore` fehlt ganz | „.gitignore: nicht vorhanden" (**Warnung**, kein Fehler) |
42
+ | Sonde 45c | Ein echtes Repositorium, eine `.pyc` unter `leitwerk-core/` verfolgt – **bei vorhandener Regel** | „sind versioniert", und der Pfad der Datei steht darin |
43
+ | Sonde 45d | Dieselbe Installation **ohne** `git init` | „ist nicht gelaufen" |
44
+ | Gegenprobe 45a | `*.pyc` statt `__pycache__/` – andere Schreibweise, gleiche Wirkung | **keine** Meldung der Prüfung 45 |
45
+ | Gegenprobe 45b | Ein Repositorium ohne verfolgten Bytecode | weder „sind versioniert" **noch** „ist nicht gelaufen" |
46
+ | Selbstprobe A3 | Ein Arbeitsverzeichnis mit einer schreibgeschützten Datei | **keine** Zeile – der Aufräumer räumt weg und schweigt |
47
+
48
+ ### 2.1 Die beiden Gegenproben sind hier die schärferen
49
+
50
+ **Gegenprobe 45a** misst die Breite: Ein Projekt, das `*.pyc` schreibt, ist **richtig**.
51
+ Eine Prüfung, die nur `__pycache__/` gelten ließe, meldete den richtigen Text – und das
52
+ ist genau der Fehler, den Prüfung 37 einmal gemacht hat.
53
+
54
+ **Gegenprobe 45b** misst zwei Dinge auf einmal, und das zweite ist das wichtigere: Sie
55
+ verlangt, dass „sind versioniert" **fehlt** – und dass „ist nicht gelaufen" **ebenfalls
56
+ fehlt**. Ohne die zweite Bedingung bestünde sie auch dann, wenn git gar nicht da wäre;
57
+ sie bewiese dann nichts über Gegenstand 2, sondern nur, dass er schwieg. **Eine
58
+ Gegenprobe, die eine abgeschaltete Prüfung nicht von einer schweigenden unterscheidet,
59
+ misst ihren Fall nicht mehr.**
60
+
61
+ ### 2.2 Warum die Sonden zu Gegenstand 2 im Bündel stehen
62
+
63
+ `kopie()` lässt `.git` bewusst weg – eine Kopie des Repositoriums ist keins. Gegenstand 2
64
+ ist deshalb auf einer Kopie **nicht herstellbar**; seine Sonden legen sich ihr
65
+ Repositorium selbst an (`installation()`, dann `git init`). Das ist dieselbe Begründung,
66
+ aus der die Sonden zu den Prüfungen 33, 37, 42 und 43 im Bündel stehen: Der Gegenstand
67
+ ist eine installierte Lage, nicht ein Text.
68
+
69
+ **Sonde 45d steht vor dem `git init`** – und zwar bewusst: Genau dieser Zustand, ein Baum
70
+ ohne `.git`, ist der Normalfall **jeder anderen Sonde dieses Skripts**. Sie belegt damit
71
+ zugleich, dass die Warnung, die alle übrigen Sondenläufe jetzt tragen, die richtige ist.
72
+
73
+ ## 3. Der Gegenbeweis gegen den Vorstand
74
+
75
+ Gemessen mit dem **neuen** Sondenskript gegen einen **vollständigen** Arbeitsbaum auf
76
+ 0.46.0 – Validator, Sondenskript und Testkatalog dort auf dem Stand von `main`, alles
77
+ übrige identisch:
78
+
79
+ | Einheit | Gegen 0.46.0 | Erwartet |
80
+ |---|---|---|
81
+ | Sonde 45a | **FEHL** | fällt |
82
+ | Sonde 45b | **FEHL** | fällt |
83
+ | Sonde 45c | **FEHL** | fällt |
84
+ | Sonde 45d | **FEHL** | fällt |
85
+ | Gegenprobe 45a | OK | **besteht** |
86
+ | Gegenprobe 45b | OK | **besteht** |
87
+
88
+ **Vier Fundstellen, und die beiden Gegenproben bestehen.** Das ist die richtige Form und
89
+ nicht nur die erfreuliche: Eine Gegenprobe stellt einen **zulässigen** Zustand her, und
90
+ ein zulässiger Zustand läuft auch dort durch, wo es die neue Prüfung noch gar nicht gibt.
91
+ Fiele sie gegen den Vorstand, prüfte sie etwas anderes als ihren Fall.
92
+
93
+ > **Ein Zwischenfall, der hier hingehört:** Der erste Versuch des Gegenbeweises lief gegen
94
+ > einen frischen `git worktree` auf `main` – und **alle** Einheiten fielen, auch die
95
+ > Gegenproben. Der Grund ist nicht das Release: Das Framework-Repositorium versioniert
96
+ > seine Wurzelerzeugnisse bewusst **nicht** (sie entstehen aus `install.py`), und ein
97
+ > frischer Worktree hat sie deshalb nicht. Sein eigener Validatorlauf meldete **46 Fehler**.
98
+ > **Ein Vorstand ohne Wurzelerzeugnisse ist kein Vorstand**, und eine Gegenprobe, die
99
+ > „0 Fehler" verlangt, fällt dort aus einem Grund, der mit ihrem Gegenstand nichts zu tun
100
+ > hat. Der Vorstand ist deshalb ein vollständiger Arbeitsbaum mit drei zurückgesetzten
101
+ > Dateien – und der meldet 0 Fehler, 0 Warnungen.
102
+
103
+ ## 4. Der Aufräumer aus 0.46.0 – sein erster echter Fall
104
+
105
+ Die Sonde zu Gegenstand 2 legt ein Repositorium an. **Git schreibt seine Objektdateien
106
+ schreibgeschützt.** Der Aufräumer versuchte dreimal über anderthalb Sekunden zu löschen
107
+ und meldete:
108
+
109
+ ```
110
+ AUFRAEUMER - FEHL sonden_bytecode: C:\…\lw-inst-p8auo49r bleibt liegen
111
+ [WinError 5] Zugriff verweigert: …\.git\objects\03\7c6087d4df…
112
+ 3 Versuche ueber 1,5 s, danach aufgegeben.
113
+ ```
114
+
115
+ **Er hatte recht und war trotzdem nutzlos.** Er meldete einen Zustand, den er selbst
116
+ hätte auflösen können: *Warten hilft gegen eine gehaltene Datei und gar nichts gegen eine
117
+ schreibgeschützte.* Die Roadmap führte genau diese Frage als offenen Punkt von 0.46.0
118
+ („unerhoben, ob drei Versuche über 1,5 s für den echten Fall reichen") – **der Fall ist
119
+ da, und die Antwort ist nein.**
120
+
121
+ Jeder Versuch ab dem zweiten nimmt jetzt zuerst den Schreibschutz im ganzen Baum weg.
122
+ **Ohne `onerror`/`onexc` von `shutil.rmtree`:** Die beiden Namen haben sich zwischen den
123
+ Python-Fassungen abgelöst, und ein Nachweiswerkzeug, das an der Fassung seines
124
+ Interpreters hängt, ist genau das, was D-49 abgeschafft hat.
125
+
126
+ **Die Selbstprobe `A3` misst es** – eine Behebung ohne Sonde ist nach D-23 keine. Sie
127
+ gilt auf beiden Betriebssystemen, aus verschiedenen Gründen: Unter Windows belegt sie den
128
+ Mechanismus, unter POSIX, dass er nichts kaputt macht (dort blockiert eine
129
+ schreibgeschützte *Datei* das Löschen ohnehin nicht). **Wer den Mechanismus unter Windows
130
+ entfernt, macht sie rot.**
131
+
132
+ > **Das ist der Ertrag von 0.46.0, eingelöst binnen eines Releases:** Bis dahin stand an
133
+ > dieser Stelle `ignore_errors=True`. Das Verzeichnis wäre liegen geblieben, der Lauf
134
+ > wäre grün gewesen, und niemand hätte je erfahren, dass die Sonde zu Prüfung 45 bei
135
+ > jedem Lauf ein Repositorium auf der Platte zurücklässt.
136
+
137
+ ## 5. Was dieses Protokoll nicht belegt
138
+
139
+ - **Nicht, dass die Deckungsliste vollständig ist.** Fünf Schreibweisen gelten; eine
140
+ wirksame, aber exotische sechste meldet die Prüfung als fehlend. Die Grenze steht im
141
+ Kopfkommentar.
142
+ - **Nicht, dass Gegenstand 1 die Wirkung prüft.** Eine Regel, die durch eine spätere
143
+ Ausnahmezeile (`!*.pyc`) wieder aufgehoben wird, fällt ihm nicht auf. Den Fall fängt
144
+ Gegenstand 2 – aber nur, wo git da ist.
145
+ - **Nicht, dass drei Versuche jetzt reichen.** Sie reichen gegen den Schreibschutz, weil
146
+ er gelöst wird, und gegen eine kurz gehaltene Datei. Gegen eine dauerhaft geöffnete
147
+ reichen sie nicht – und genau das misst `A2`, indem sie sie herstellt.
148
+ - **Nicht, dass das Übungsrepositorium hergerichtet ist.** Es führt weiterhin zwei
149
+ versionierte `.pyc` und steht auf 0.45.0. Das gehört zum nächsten Heben dorthin.