@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,125 @@
1
+ # Änderungsantrag `CR-2026-059`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Die drei Lücken aus `CR-2026-058` sind geschlossen – die restriktivere Liste gewinnt, die Sperre gilt im Hintergrund und zwei Ebenen tief |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-13 |
8
+ | Betroffene Artefakte | `clients/claude-code/CLIENT_PACK.md` (Zeilen **S3**, **A1**), `framework/core/05-working-model.md` (M1 und die Regel zu Hintergrund-Subagenten), `tests/scripts/validate-framework.py` (Prüfung 35 neu), `tests/scripts/probe-pruefungen.py`, `tests/EDGE_CASES.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | **Client Pack** (Matrix) und **Core** (Arbeitsmodell) |
10
+ | Art | Nachtrag zu `CR-2026-058`: die drei dort ausdrücklich als **nicht gemessen** ausgewiesenen Punkte; **erhoben am 2026-09-13**, sieben Läufe, davon drei Kontrollläufe |
11
+ | Dringlichkeit | **Paket 6.** Kein P1: Alle vier Befunde fallen **zugunsten** der Durchsetzung aus. Der Antrag schließt Belegzusagen ab, die bis hierher als Erwartung dastanden |
12
+
13
+ ## 1. Anlass
14
+
15
+ `CR-2026-058` hat drei Punkte ausdrücklich offen ausgewiesen, und die Roadmap nennt den ersten
16
+ davon „die billigste Anschlussmessung". Sie sind gemessen:
17
+ `tests/protocols/2026-09-13-erhebung-unteragent-tiefe.md`.
18
+
19
+ **Alle drei Aufbauten haben je einen eigenen Kontrolllauf**, und die Sonden schreiben diesmal
20
+ das Werkzeug vor – die Lehre aus Lauf V-M des Vortags, wo der Gegenstand sich sein Werkzeug
21
+ selbst gesucht hat.
22
+
23
+ ### 1.1 Befund 1: Die restriktivere Liste gewinnt
24
+
25
+ | Lauf | Aufbau | Ergebnis |
26
+ |---|---|---|
27
+ | **ZS** | Skill sperrt `Write, Edit`; Profil nennt `tools: Read, Grep, Glob, **Write**` | **`Write` fehlte im Vorrat** |
28
+ | **ZS-K** | **Kontrolllauf:** derselbe Skill ohne das Feld | Unteragent zählte vier Werkzeuge auf und schrieb |
29
+
30
+ **Die Skill-Sperre schneidet aus dem Profilvorrat heraus.** Dieselbe Semantik, die D-64
31
+ gegenüber der `allow`-Liste gemessen hat: **Eine Erlaubnis holt ein entferntes Werkzeug nicht
32
+ zurück** – gleich, ob sie in der Berechtigungsdatei steht oder im Agentenprofil. Praktisch:
33
+ **Man kann die Liste nur enger machen, nie weiter.**
34
+
35
+ ### 1.2 Befund 2: Die Sperre gilt im Hintergrund
36
+
37
+ `run_in_background: True` ist im Rekorder beider Läufe belegt. Messlauf: `Write` fehlte.
38
+ Kontrolllauf: derselbe Hintergrund-Unteragent schrieb.
39
+
40
+ **Das war die plausibelste Vermutung für eine Lücke** – ein Hintergrundlauf ist vom aufrufenden
41
+ Turn entkoppelt, und die Sperre gilt für den Turn. Sie besteht nicht.
42
+
43
+ ### 1.3 Befund 3: Sie reicht mindestens zwei Ebenen tief
44
+
45
+ Der Start der zweiten Ebene **gelang** (zwei `Agent`-Aufrufe im Rekorder, der zweite mit
46
+ eigener `agent_id`), und `Write` fehlte auch dort. Der Kontrolllauf zeigt im selben Aufbau, wie
47
+ die zweite Ebene schreibt.
48
+
49
+ **„Mindestens zwei" ist wörtlich gemeint** – drei Ebenen sind nicht gemessen.
50
+
51
+ ### 1.4 Befund 4, nicht gesucht: Ein beschränktes Profil kann keine Ebene öffnen
52
+
53
+ Das Profil `tools: Read, Grep, Glob` – **genau die Form, die `fw-reviewer` nach der Abbildung
54
+ trägt** – hat **kein Startwerkzeug**. Der Rekorder zeigt einen einzigen `Agent`-Aufruf, den des
55
+ Hauptagenten.
56
+
57
+ > **Das trägt die Zusage A1 an einer Stelle, an der sie sonst offen wäre:** Ein „rein lesendes"
58
+ > Reviewprofil könnte sich sonst über eine zweite Ebene erweitern, deren Profil weniger
59
+ > beschränkt ist. Es kann nicht – die Erweiterung bräuchte ein Werkzeug, das ihm fehlt.
60
+
61
+ **Und genau daran hängt eine stille Annahme.** Sie hält heute, weil
62
+ `agent_frontmatter.tool_names` kein Startwerkzeug abbildet. Erweitert jemand diese Abbildung,
63
+ fällt die Zusage **lautlos** – niemand prüft es. Das ist der Anlass für E1.
64
+
65
+ ### 1.5 Beobachtung: Der Wortlaut des Clients überzeichnet seine eigene Reichweite
66
+
67
+ ```text
68
+ Error: No such tool available: Write. Write is disabled for this session, in subagents
69
+ as well as here.
70
+ ```
71
+
72
+ **Die zweite Hälfte bestätigt diese Erhebung. Die erste überzeichnet:** „for this session" ist
73
+ nicht gemessen – D-64 hat belegt, dass Turn 2 derselben Sitzung wieder schreiben konnte.
74
+
75
+ Das ist eine Aussage des Clients, **kein Messwert**. Es ändert an der Turngrenze nichts. Es
76
+ gehört trotzdem benannt: **Jede Nutzerin bekommt diese Zeile zu sehen, das Protokoll nicht.**
77
+
78
+ ## 2. Was heute im Repositorium steht
79
+
80
+ | Stelle | Heutiger Stand | Warum das nicht bleiben kann |
81
+ |---|---|---|
82
+ | Zeile **S3** | „Nicht gemessen: Hintergrund-Unteragenten und zwei Ebenen tief" | Beides ist gemessen; der Satz beschreibt einen Stand von gestern |
83
+ | Zeile **A1** | keine Aussage zur zweiten Ebene | Die Zusage „rein lesend" ließe sich sonst durch eine untergeordnete Ebene aushebeln – gemessen geht das nicht, und das gehört dazugesagt |
84
+ | `05-working-model.md`, M1 | das Profil ist „der belastbarere Weg" | Richtig, und jetzt stärker belegbar: Es kann sich nicht selbst erweitern |
85
+ | `05-working-model.md`, Hintergrund-Subagenten | „technisch nicht abbildbar" | Bleibt richtig für „nur Hintergrund". **Neu ist:** Sperrt man ein Werkzeug, gilt das auch im Hintergrund – die Regel ist damit nicht so schutzlos, wie der Satz allein klingt |
86
+ | nichts | die stille Annahme aus 1.4 | Sie hält an einer Abbildung, die niemand gegen sie prüft |
87
+
88
+ ## 3. Vorgeschlagene Änderung
89
+
90
+ 1. **Zeile S3**: Die beiden „nicht gemessen"-Punkte werden durch die Messung ersetzt, und die
91
+ Widerspruchsregel kommt dazu (die restriktivere Liste gewinnt).
92
+ 2. **Zeile A1**: Befund 4 und die Beobachtung aus 1.5.
93
+ 3. **`05-working-model.md`**: M1 und die Regel zu Hintergrund-Subagenten werden nachgezogen.
94
+ 4. **Prüfung 35 (neu)**: Die erzeugte `tools`-Liste eines Agentenprofils darf keinen Namen aus
95
+ `agent_start_tools` des Packs führen, und `agent_frontmatter.tool_names` darf keinen
96
+ abbilden.
97
+ 5. **`EDGE_CASES.md`**: ein Grenzfall zum Widerspruch zwischen Profil und Skill.
98
+
99
+ ## 4. Auswirkungen
100
+
101
+ - **Keine Einstufung ändert sich.** S3 und A1 bleiben `[TECHNISCH]`; die Summen bleiben.
102
+ - **Vier Punkte wandern von „nicht gemessen" auf gemessen.**
103
+ - **Prüfung 35 fängt heute nichts** – siehe E1, und das steht so im Nachweis.
104
+
105
+ ## 5. Vorlage zur Entscheidung
106
+
107
+ | Nr. | Frage | Vorschlag | Preis |
108
+ |---|---|---|---|
109
+ | **E1** | Soll eine Prüfung durchsetzen, dass ein Agentenprofil kein Startwerkzeug bekommt? | **Ja, Prüfung 35.** Die Zusage aus Befund 4 hängt heute allein daran, dass `agent_frontmatter.tool_names` kein Startwerkzeug abbildet – eine Erweiterung dieser Abbildung ließe sie **lautlos** fallen | **Sie fängt heute nichts**, weil die Abbildung das Werkzeug gar nicht kennt. Das ist dieselbe Bauart wie der fünfte Gegenstand der Prüfung 32 und **mit derselben Ehrlichkeit zu begründen: eine Verankerung, keine Behebung.** Wer sie als Risikoabwehr verkauft, überzeichnet |
110
+ | **E2** | Wird der irreführende Wortlaut des Clients ins Pack aufgenommen? | **Ja, als Beobachtung bei S3.** „for this session" ist nicht, was gemessen ist | Die Zeile wird noch länger, und sie zitiert eine fremde Fehlermeldung. **Dafür steht die Abweichung dort, wo jemand sie sucht** – wer die Meldung sieht und ihr glaubt, nimmt mehr Reichweite an, als belegt ist |
111
+ | **E3** | Wird der umgekehrte Widerspruch (Profil sperrt, Skill erlaubt) mitgemessen? | **Nein, und er wird als Erwartung ausgewiesen.** Nach Befund 1 ist er vorhersagbar; eine Vorhersage ist aber keine Messung, und das muss dastehen | Eine Lücke bleibt offen. **Die Alternative wäre, sie mit einer Erwartung zu schließen** – genau das, was sich dieses Projekt abgewöhnt hat |
112
+ | **E4** | Wird „mindestens zwei Ebenen" so formuliert, oder allgemein? | **Wörtlich „mindestens zwei".** Drei sind nicht gemessen | Die Formulierung wirkt kleinlich. Sie ist genau: Der Mechanismus legt mehr nahe, gemessen sind zwei |
113
+ | **E5** | Ein Release oder an 0.36.0 anhängen? | **Ein eigenes Release, `0.37.0`.** 0.36.0 ist gemergt; ein Nachtrag in dessen Protokoll würde verwischen, was wann gemessen wurde | Ein elftes Release am selben Tag. Der Preis ist Buchhaltung, der Gewinn ist eine saubere Belegkette |
114
+
115
+ ## 6. Entscheidung
116
+
117
+ | Feld | Inhalt |
118
+ |---|---|
119
+ | Entscheidung | **Angenommen, alle fünf Fragen wie vorgelegt.** E1 Prüfung 35, begründet als Verankerung und nicht als Risikoabwehr; E2 der Wortlaut des Clients kommt als Beobachtung in S3; E3 der umgekehrte Widerspruch bleibt ungemessen und wird als Erwartung ausgewiesen; E4 „mindestens zwei Ebenen" wörtlich; E5 eigenes Release `0.37.0` |
120
+ | Datum | 2026-09-13 |
121
+ | Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
122
+ | Decision-Log-Einträge | D-72 (die restriktivere Liste gewinnt; Hintergrund und zweite Ebene sind mitgemessen), D-73 (ein Agentenprofil bekommt kein Startwerkzeug, und Prüfung 35 hält es fest) |
123
+ | Auflagen | **Die Grenzen der Messung bleiben in jeder Nennung stehen:** „mindestens zwei Ebenen", der ungemessene umgekehrte Widerspruch, und dass der Schutz-Hook nur für die **erste** Ebene als blockierend gemessen ist. **Die Begründung für Prüfung 35 wird nicht zur Risikobehauptung aufgewertet** – sie fängt heute nichts, und der Wirkungsnachweis sagt das. **Und die Clientmeldung wird als Zitat kenntlich gemacht**, nicht als Belegsatz des Frameworks |
124
+ | Ziel-Release | `0.37.0` |
125
+ | Umsetzung | umgesetzt mit `0.37.0` |
@@ -0,0 +1,170 @@
1
+ # Änderungsantrag `CR-2026-060`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Der stumme Bruch wird laut – Präparationswächter, Zellenzählung des Decision Logs, und eine Prüfung, die den richtigen Text beanstandet |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-13 |
8
+ | Betroffene Artefakte | `tests/scripts/probe-pruefungen.py` (Runner und elf Präparationen), `tests/scripts/validate-framework.py` (Prüfung 36 neu, gemeinsame Zellenzerlegung an vier Stellen), `governance/DECISION_LOG.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | **Core** (Prüfwerkzeuge des Frameworks) |
10
+ | Art | Änderung; erledigt zwei seit mehreren Releases benannte, nicht umgesetzte Punkte und einen dritten, den die Gegenprüfung gefunden hat |
11
+ | Dringlichkeit | regulär. **Kein P1:** Keiner der drei Punkte betrifft eine Zusage gegenüber einem Projekt. Sie betreffen die Werkzeuge, mit denen dieses Projekt seine Zusagen prüft – und deren Ausfall ist deshalb still |
12
+
13
+ ## 1. Anlass
14
+
15
+ Zwei Punkte stehen seit mehreren Releases im Repositorium und sind nicht umgesetzt:
16
+
17
+ | Punkt | Seit | Wie oft aufgetreten |
18
+ |---|---|---|
19
+ | **Soll eine Gegenprobe ihre Summen ableiten?** Ermessensfrage, ausdrücklich als solche benannt | 0.34.0-Protokoll Abschnitt 4.x | **viermal in Folge** (0.34.0, 0.35.0, 0.36.0, 0.37.0), jedes Mal von Hand nachgezogen; mit 0.36.0 kam eine Kennungskollision dazu (`G-18`) |
20
+ | **Die Zellen der Decision-Log-Tabellen zählt nichts.** Prüfvorschlag, ausdrücklich nicht Teil seines Releases | 0.35.0-Protokoll Abschnitt 7 | **zweimal bestätigt** – beim Eintragen von D-64 und beim Eintragen von D-69 |
21
+
22
+ **Beide sind gegengeprüft** (`tests/protocols/2026-09-13-gegenpruefung-stumme-brueche.md`,
23
+ drei Messungen an Kopien des Repositoriums). Beide bestätigen sich, **und die Gegenprüfung
24
+ findet einen dritten Punkt, den keiner von beiden nennt.**
25
+
26
+ ### 1.1 Befund 1: Die halb greifende Präparation sieht aus wie ein Prüfungsfehler
27
+
28
+ Eine Kopie mit einem **echten** zwanzigsten Grenzfall – der Zustand, den ein Release
29
+ hinterlässt – bekam die heutige Präparation der Gegenprobe 30. Die erste ihrer beiden
30
+ Ersetzungen traf nicht, die zweite schon.
31
+
32
+ ```text
33
+ Baum veraendert: True <- der baumhash-Waechter meldet nichts
34
+ FEHLER leitwerk-core/tests/EDGE_CASES.md: 21 Grenzfallzeilen, der Steckbrief nennt 20.
35
+ Eine Zahl, die nicht stimmt, ist kein Nachweis
36
+ Gegenprobe bestanden: False
37
+ ```
38
+
39
+ **Die Gegenprobe fällt mit einer Meldung, die aussieht, als habe sie einen echten Fehler im
40
+ Repositorium gefunden.** Dort ist keiner – die Sonde hat ihren eigenen Suchtext verloren.
41
+
42
+ > **`baumhash` ist ein Alles-oder-nichts-Wächter.** Bei *n* Ersetzungen belegt er „mindestens
43
+ > eine hat gegriffen", nie „alle". Deshalb melden sich die einteiligen Präparationen selbst
44
+ > und die mehrteiligen nicht. **Das ist eine Lücke im Runner, keine Nachlässigkeit beim
45
+ > Schreiben der Sonden** – und sie schließt sich nicht dadurch, dass man Suchtexte
46
+ > sorgfältiger pflegt.
47
+
48
+ **Die Lücke ist größer als die Frage, die sie ausgelöst hat.** Ausgezählt:
49
+
50
+ | Lage | Anzahl | Deckt `baumhash`? |
51
+ |---|---|---|
52
+ | **a** über einen Runner mit `baumhash`, **eine** Ersetzung | Regelfall | **ja**, mit erklärender Meldung – **kein Befund** |
53
+ | **b** über einen solchen Runner, **mehrere** Ersetzungen | 3 Stellen, zusammen 9 Ersetzungen in 5 Dateien | **nein** |
54
+ | **c** Bündelfunktionen mit direktem `melde()` | 9 Funktionen, 35 Meldestellen, darin 3 mit Textpräparation (7 Ersetzungen) | **nein, gar nicht** |
55
+
56
+ **Neun Bündelfunktionen mit 35 Meldestellen laufen ohne jeden Präparationswächter.** Runner
57
+ **mit** Wächter gibt es drei: `sonde()`, `gegenprobe()`, `sonde_ohne_wert()`.
58
+
59
+ ### 1.2 Befund 2: Die Zellen der Decision-Log-Tabellen zählt nichts
60
+
61
+ Gezählt über sechs Auscheckstände, maskierte Striche als Inhalt behandelt:
62
+
63
+ | Stand | Abweichende Zeilen |
64
+ |---|---|
65
+ | 0.32.0, 0.33.0 | **je 1** – D-29 |
66
+ | 0.34.0 | **4** – D-29, D-61, D-62, D-63 |
67
+ | 0.35.0 bis 0.37.0 | 0 |
68
+
69
+ **Der Befund bestätigt sich und ist heute behoben.** Eine Prüfung, die jetzt entsteht, fängt
70
+ **nichts** – dieselbe Lage wie bei Prüfung 35. **Der Unterschied ist erheblich:** Prüfung 35
71
+ fand auch im Vorstand nichts, weil ihr Gegenstand dort nicht existiert. Diese Prüfung hätte
72
+ gegen 0.34.0 vier Fundstellen gemeldet. **Ihr Gegenbeweis ist kein Kunstgriff, sondern ein
73
+ Abzählen.**
74
+
75
+ **D-29 stand fünfundzwanzig Releases lang zerrissen** und wurde von jedem Validatorlauf
76
+ gesehen. Gefunden hat sie ein Mensch beim Eintragen einer anderen Zeile.
77
+
78
+ ### 1.3 Befund 3, nicht gesucht: Prüfung 30 beanstandet einen GFM-korrekten Text
79
+
80
+ Prüfung 30 zerlegt eine Grenzfallzeile mit `.split("|")`. GFM verlangt für einen Strich
81
+ **innerhalb** einer Zelle die Maskierung `\|`; `.split("|")` sieht sie nicht. Gemessen an
82
+ einer Kopie, mit demselben Codespan, den **D-69 seit 0.36.0 trägt**:
83
+
84
+ ```text
85
+ FEHLER leitwerk-core/tests/EDGE_CASES.md: Grenzfall G-14 hat 9 Spalten statt 7
86
+ ```
87
+
88
+ **Das ist die Bauform, vor der der Wirkungsnachweis zu Prüfung 28 warnt:** eine Prüfung ohne
89
+ die nötige Unterscheidung beanstandet den richtigen Text. Heute ist der Fehlalarm latent –
90
+ keine Grenzfallzeile trägt einen maskierten Strich. **Er zählt trotzdem, aus zwei Gründen:**
91
+
92
+ 1. **Er verbietet es, Prüfung 36 naiv zu bauen.** Naiv gezählt trügen D-29 und D-69 heute
93
+ **acht** Zellen statt sechs; die neue Prüfung meldete an ihrem ersten Lauf **zwei
94
+ Fehlalarme auf korrektem Text.**
95
+ 2. **Die Zellenzerlegung liegt viermal im Validator, jedes Mal eigenhändig** – `:1686`,
96
+ `:1838`, `:2528`, `:3033`. Eine fünfte Stelle wäre die fünfte Gelegenheit für denselben
97
+ Fehler.
98
+
99
+ ## 2. Die Ermessensfrage, um die es eigentlich geht
100
+
101
+ > Soll die Gegenprobe ihre Summen aus der Tabelle **ableiten** – und beweist sie dann noch,
102
+ > was sie beweisen soll, oder verdoppelt sie nur die Rechenweise der Prüfung?
103
+
104
+ **Die Gegenfrage ist echt, und keine Messung entscheidet sie.** Was die Gegenprüfung beiträgt,
105
+ ist die Trennung zweier Dinge, die vier Releases lang als eines behandelt wurden:
106
+
107
+ | | Frage | Art |
108
+ |---|---|---|
109
+ | **a** | Woher nimmt die Gegenprobe ihre Zielsumme? | **Ermessen** – abgeleitet ist bequemer und belegt weniger |
110
+ | **b** | Was passiert, wenn ein Suchtext der Präparation nicht mehr trifft? | **kein Ermessen** – heute erscheint es als Prüfungsfehler, und das ist schlicht falsch |
111
+
112
+ **b ist unabhängig von a zu beheben.** Ist b behoben, verliert a den größten Teil seines
113
+ Drucks: Der wörtliche Wert bleibt der teurere Weg, aber sein Bruch kostet dann eine Zeile
114
+ Diagnose statt einer Fehlersuche im Repositorium.
115
+
116
+ ## 3. Vorgeschlagene Änderung
117
+
118
+ 1. **Präparationswächter** in `probe-pruefungen.py`: ein Helfer `ersetze(pfad, *paare)`, der
119
+ jede Ersetzung einzeln auf die erwartete Trefferzahl prüft und bei Abweichung eine
120
+ `Praeparationsfehler`-Ausnahme wirft. `sonde()` und `gegenprobe()` fangen sie und melden
121
+ `[Suchtext trifft nicht: '…']`; die Bündelfunktionen laufen über einen Wrapper, der sie
122
+ ebenso meldet und das Bündel abbricht.
123
+ 2. **Kennungswächter** `frei(pfad, kennung)`: Eine synthetische Kennung, die eine Präparation
124
+ einführt (`G-99`, `Z9`), darf im Zieldokument nicht bereits vorkommen. Bricht sie laut ab,
125
+ sobald ein Release die Kennung wirklich vergibt.
126
+ 3. **Sechs Präparationen** auf den Helfer umgestellt – die drei mehrteiligen und die drei mit
127
+ Suchtext in den Bündeln; zusammen 14 Ersetzungsstellen und zwei Zeileneinfügungen. **Alle
128
+ drei Runner mit `baumhash` fangen den Abbruch**, die neun Bündelfunktionen laufen über den
129
+ Wrapper.
130
+ 4. **Die Summen bleiben wörtlich verankert** (siehe E1) – mit dem Wächter davor.
131
+ 5. **Prüfung 36 (neu)**: Jede Tabellenzeile in `DECISION_LOG.md` führt so viele Zellen wie die
132
+ Kopfzeile ihrer Tabelle, maskierte Striche als Inhalt.
133
+ 6. **Eine gemeinsame Zellenzerlegung** im Validator, verwendet an allen vier Stellen; damit
134
+ ist auch der Fehlalarm aus 1.3 behoben.
135
+
136
+ ## 4. Auswirkungen
137
+
138
+ - **Keine Einstufung ändert sich, keine Summe, keine Zusage.** Der Antrag berührt
139
+ ausschließlich Prüfwerkzeuge.
140
+ - **Prüfung 36 fängt heute nichts** – das steht so im Wirkungsnachweis, und ihr Gegenbeweis
141
+ läuft gegen 0.34.0.
142
+ - **Prüfung 30 wird toleranter** gegenüber einer Schreibweise, die sie heute zu Unrecht
143
+ beanstandet. Sie wird an keiner Stelle schwächer: Ein unmaskierter Strich zerreißt die Zeile
144
+ weiterhin, und genau das meldet sie.
145
+ - **Der Sondenlauf bekommt eine neue Meldeform.** Ein `[Suchtext trifft nicht]` ist ein
146
+ **Fehlschlag**, wie `[nichts praepariert]` – es zählt in `fehler` und lässt den Lauf rot
147
+ werden. Das ist gewollt: Eine Sonde, die nicht präpariert, hat nichts gemessen.
148
+
149
+ ## 5. Vorlage zur Entscheidung
150
+
151
+ | Nr. | Frage | Vorschlag | Preis |
152
+ |---|---|---|---|
153
+ | **E1** | Soll eine Gegenprobe ihre Summen aus der Tabelle **ableiten**? | **Nein – sie bleiben wörtlich verankert.** Eine abgeleitete Summe rechnet nach derselben Regel wie die Prüfung; rechnet die Prüfung falsch, rechnet die Gegenprobe genauso falsch und besteht. **Der wörtlich gesetzte Wert ist ein unabhängiger Erwartungswert von Hand** – das ist der Beleg, den eine Gegenprobe schuldet | **Der Bruch bleibt.** Jede neue Matrixzeile und jeder neue Grenzfall bricht die Verankerung weiterhin, und jemand muss sie nachziehen. **Der Antrag beseitigt den Preis nicht, er macht ihn bezahlbar:** Statt einer Fehlersuche im Repositorium kostet er eine Zeile, die den nicht mehr passenden Suchtext nennt. **Wer das für zu wenig hält, hat recht in der Sache und muss dann die Zielsumme woanders herholen als aus der Rechenweise der Prüfung** – eine dritte Quelle gibt es nicht |
154
+ | **E2** | Bekommt `probe-pruefungen.py` einen Präparationswächter? | **Ja, und zwar genau dort, wo `baumhash` blind ist** – bei mehrteiligen Präparationen und in den Bündelfunktionen. **Nicht** bei den einteiligen: Dort meldet der Runner heute schon das Richtige, und eine zweite Prüfung derselben Sache wäre Ballast | **Sechs Präparationen zu ändern**, in der Datei, die alle Nachweise trägt. Ein Fehler dabei fällt im selben Lauf auf – das ist der Vorteil, den dieses Skript vor allen anderen hat. **Und: Der Wächter deckt nur den Suchtext, nicht die Absicht.** Eine Ersetzung, die trifft und das Falsche tut, findet er nicht |
155
+ | **E3** | Bekommt eine synthetische Kennung einen Wächter gegen Kollision? | **Ja.** Am 13.09. trug die Gegenprobe 30 ausgerechnet `G-18` – dieselbe Kennung, die 0.36.0 wirklich vergeben hat. **Beide Fallen waren in der Übergabe benannt, und beide sind trotzdem zugeschnappt**; eine benannte Falle, in die man zweimal tritt, gehört in den Code, nicht in eine Datei außerhalb des Repositoriums | Drei Zeilen mehr je betroffener Präparation. **Der Wächter ist genau so klug wie die Kennung, die man ihm gibt** – er prüft Abwesenheit, nicht Eignung |
156
+ | **E4** | Entsteht Prüfung 36 für die Zellen des Decision Logs? | **Ja.** Vier zerrissene Zeilen in 0.34.0, eine davon seit fünfundzwanzig Releases; gefunden hat sie jedes Mal ein Mensch. Prüfung 30 tut dasselbe für `EDGE_CASES.md`, die Bauform liegt vor | **Sie fängt heute nichts** – das ist mit derselben Ehrlichkeit zu sagen wie bei Prüfung 35. **Anders als dort ist ihr Gegenbeweis aber ein Abzählen und keine Konstruktion:** vier Fundstellen gegen 0.34.0. Wer sie dennoch als Risikoabwehr verkauft, überzeichnet |
157
+ | **E5** | Wird der Fehlalarm aus 1.3 mitbehoben, und wie weit? | **Ja, über eine gemeinsame Zellenzerlegung an allen vier Stellen** – nicht nur bei Prüfung 30. Die Zählweise liegt viermal im Validator; eine gemeinsame Funktion macht aus vier Gelegenheiten für denselben Fehler eine | **Drei der vier Stellen ändern ihr Verhalten heute nicht** – sie nehmen die erste Zelle oder suchen über ein Muster. Der Umbau ist dort reine Vorsorge, und Vorsorge in fremdem Code ist ein Risiko. **Die Alternative – nur Prüfung 30 berichtigen – lässt drei Stellen mit der falschen Zählweise stehen**, und die nächste Prüfung kopiert eine davon |
158
+ | **E6** | Ein eigenes Release oder Anhang an das nächste inhaltliche? | **Ein eigenes Release, `0.38.0`.** Der Gegenstand ist geschlossen und hat mit dem nächsten inhaltlichen nichts zu tun; angehängt würde er in dessen Protokoll verschwinden – wie viermal zuvor, als er als Nebensatz beim Aufräumen behandelt wurde | **Das dreizehnte Release in zwei Tagen**, und keines seiner Ergebnisse ist eine Messung am Client. Der Preis ist Buchhaltung. **Der Gewinn ist, dass diese Frage aufhört, in Nebensätzen zu wandern** |
159
+
160
+ ## 6. Entscheidung
161
+
162
+ | Feld | Inhalt |
163
+ |---|---|
164
+ | Entscheidung | **Angenommen, alle sechs Fragen wie vorgelegt.** E1 die Summen bleiben wörtlich, der Bruch wird laut statt beseitigt; E2 Präparationswächter genau dort, wo `baumhash` blind ist; E3 Kennungswächter; E4 Prüfung 36, begründet als Verankerung mit abzählbarem Gegenbeweis; E5 gemeinsame Zellenzerlegung an allen vier Stellen; E6 eigenes Release `0.38.0` |
165
+ | Datum | 2026-09-13 |
166
+ | Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
167
+ | Decision-Log-Einträge | D-74 (eine Präparation, die nicht greift, meldet sich als solche – und eine Gegenprobe leitet ihre Zielsumme nicht aus der Rechenweise der Prüfung ab), D-75 (eine Tabellenzelle endet am unmaskierten Strich, und diese Zählung liegt einmal) |
168
+ | Auflagen | **Die Begründung für Prüfung 36 wird nicht zur Risikobehauptung aufgewertet** – sie fängt heute nichts, und der Wirkungsnachweis sagt es. **Der Gegenbeweis läuft gegen 0.34.0**, nicht gegen den unmittelbaren Vorstand: Gegen 0.37.0 fände sie nichts, und eine Null ohne diese Erklärung wäre irreführend. **Und E1 wird als das ausgewiesen, was sie ist:** eine Entscheidung gegen die bequemere Lösung mit einem Preis, der bleibt |
169
+ | Ziel-Release | `0.38.0` |
170
+ | Umsetzung | umgesetzt mit `0.38.0` |
@@ -0,0 +1,169 @@
1
+ # Änderungsantrag `CR-2026-061`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Die Berechtigungsdatei nach der Installation – eine Erweiterung, die es nicht gibt, und fünfzig Regeln, die niemand nachzählt |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-13 |
8
+ | Betroffene Artefakte | `tests/scripts/validate-framework.py` (Prüfung 37 neu), `clientmap.py` (neue öffentliche Funktion `basket_rules`, berichtigter Kommentarkopf), `tests/scripts/probe-pruefungen.py` (Sonden und Gegenprobe zu 37), `framework/core/03-security.md` (Abschnitt 4), `templates/project-overlay/OVERLAY.md` (Abschnitt 6), `governance/DECISION_LOG.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | **Core** – die Berechtigungspolitik ist normativ (`03-security.md` Abschnitt 4), die Prüfung ist Framework-Gut |
10
+ | Art | Änderung; erledigt die beiden Framework-Lücken, die der Pilot sichtbar gemacht hat, und den dritten Ablehnungsgrund von `CR-OTP-G-001` |
11
+ | Dringlichkeit | **P1.** Anders als die letzten vier Releases betrifft dieser Antrag eine Zusage **gegenüber einem Projekt**: Die Berechtigungsdatei ist der Träger der Kernzusagen B1 bis B6, und außerhalb ihrer dreizehn Kernregeln prüft sie nichts |
12
+
13
+ ## 1. Anlass
14
+
15
+ Zwei Punkte stehen als **Kandidat 1 und 2** in der Übergabe. Sie sind beide am Piloten
16
+ aufgefallen, und sie sind zusammen der **dritte Ablehnungsgrund** von `CR-OTP-G-001`
17
+ („Es gibt keine geprüfte Änderungsschicht für diese Datei").
18
+
19
+ **Beide sind gegengeprüft** (`tests/protocols/2026-09-13-gegenpruefung-berechtigungsdatei.md`,
20
+ zwölf Messungen an einer frischen `claude-code`-Installation, davon zwei Gegenproben).
21
+ **Beide bestätigen sich, und beide sind erheblich größer als die Übergabe sagt.**
22
+
23
+ ### 1.1 Befund 1: Geprüft werden dreizehn von fünfundsechzig Regeln
24
+
25
+ Die erzeugte Datei trägt 54 `deny`-, 5 `ask`- und 6 `allow`-Regeln. Der Validator kennt davon
26
+ die **dreizehn** Kernregeln aus `_core_rules_integrity.deny_must_contain`. Gemessen:
27
+
28
+ | Eingriff | Validator |
29
+ |---|---|
30
+ | `ask` um `Bash(docker run --rm --network none:*)` ergänzt | **0 Fehler** |
31
+ | `allow` um `Bash(docker run:*)` ergänzt | **0 Fehler** |
32
+ | `Bash(curl:*)` aus `deny` gelöscht | **0 Fehler** |
33
+ | **alle 41** Nicht-Kernregeln aus `deny` gelöscht | **0 Fehler** |
34
+ | `Bash(kubectl:*)` → `Bash(kubectl delete:*)` verengt | **0 Fehler** |
35
+ | `Bash(<TEST_COMMAND>)` → `Bash(mvn -B test:*)` (der Fall des Piloten) | **0 Fehler** |
36
+ | `ask`-Korb geleert, `Edit(**)` und `mcp__*` verschwinden mit | **0 Fehler** |
37
+ | *Gegenprobe:* Kernregel gelöscht | **1 Fehler** |
38
+ | *Gegenprobe:* Kernregel in `allow` | **2 Fehler** |
39
+
40
+ **Die Übergabe nennt den `ask`-Korb. Gemessen ist es der ganze Rest der Datei.** Ein Projekt
41
+ kann `curl`, `wget`, `ssh`, `scp`, `kubectl`, `helm`, `terraform`, `npm publish`, `docker push`,
42
+ `git rebase`, `git tag`, `git clean`, `git remote`, `chmod`, sämtliche Lockfile-Sperren und zehn
43
+ der fünfzehn Secret-Lesesperren streichen, und der Lauf bleibt grün.
44
+
45
+ **`install.py` greift es ebenfalls nicht auf:** `--update` rührt die Datei nicht an (sie steht in
46
+ `shared_seed`, mit Hinweis in der Ausgabe), und `--check` **nennt sie nicht einmal**.
47
+
48
+ ### 1.2 Befund 2: Es gibt keine Overlay-Erweiterung – und drei Texte sagen etwas anderes
49
+
50
+ `render_permissions` überschreibt die drei Körbe vollständig aus der Kernquelle;
51
+ `permissions_extra` ist eine **Manifest**-Angabe, also Ebene 3. **Eine Quelle des Projekts liest
52
+ diese Funktion nicht.** Der einzige Weg eines Projekts in die Datei ist der Platzhalter, und für
53
+ Befehle gibt es drei.
54
+
55
+ Drei Texte behaupten mehr:
56
+
57
+ | | Stelle | Wortlaut |
58
+ |---|---|---|
59
+ | **T1** | `clientmap.py` Zeile 182, Kommentarkopf **jeder** erzeugten Datei | „Berechtigungsvorlage des Frameworks (**Ebene 3 + Overlay-Erweiterungen**)" – die Wendung bezeichnet im Repositorium sonst die Regeldateien `2N-*`, nicht gefüllte Platzhalter |
60
+ | **T2** | `templates/project-overlay/OVERLAY.md` Abschnitt 6 | Eine Tabelle mit **sechs** Zeilen unter der Spaltenüberschrift „Freigabestufe in `<PERMISSIONS_FILE>`". **Zwei** Zeilen tragen einen Platzhalter, **vier** nicht – und für die vier gibt es keinen Weg in die Datei |
61
+ | **T3** | `framework/core/03-security.md` Zeile 52, Abschnitt 4 (**normativ**) | „ask (**KANN im Overlay für Stufe niedrig auf allow gesetzt werden**)" – **drei Zeilen unter derselben Tabelle** steht: „Änderungen an der Regelmenge erfolgen ausschließlich über Änderungsantrag (V10)" |
62
+
63
+ **T3 ist die Bauform, die dieses Projekt zum dritten Mal findet:** *die Zusage, deren Widerlegung
64
+ im eigenen Dokument steht.* Bei B11 war es „Ausnahmen je Domain" und fünf Zeilen darunter „`deny`
65
+ gewinnt immer"; das wurde mit 0.32.0 berichtigt. **Die Zeile darüber blieb stehen** und macht
66
+ dieselbe Aussage über dieselbe Datei.
67
+
68
+ ### 1.3 Zwei Entlastungen – sie gehören dazu, weil die Ähnlichkeit trügt
69
+
70
+ **Die MCP-Zeile ist *nicht* derselbe Fehler.** `03-security.md` führt „`mcp__*` | ask; Freigaben
71
+ je Server im Overlay". Das sieht aus wie T3 und ist in Ordnung: Die Freigabe läuft über
72
+ `<MCP_FILE>`, nicht über die Berechtigungsdatei, und `OVERLAY.md` Zeile 173 sagt es ausdrücklich
73
+ („Eintrag in `<MCP_FILE>` erst nach Freigabe; **Standard ask**"). **Wer T3 behebt, darf diese
74
+ Zeile nicht mitnehmen.**
75
+
76
+ **Der Regelweg für weitere Befehle trägt bereits.** `05-working-model.md` Abschnitt 3.2 und
77
+ `root-instruction.md` Abschnitt 7 sagen: „Führe nur Befehle aus, die im Overlay freigegeben sind
78
+ (… **weitere gemäß Overlay Abschnitt 6**)." **Diese beiden Sätze sind richtig** – sie sind eine
79
+ Anweisung an den KI-Client, kein Versprechen über eine Datei, genau wie die M3-Regel zu
80
+ Hintergrund-Subagenten (D-66). **Der Kanal existiert also; er ist die Regelschicht.** Falsch ist
81
+ allein die Behauptung, der Befehl stehe danach in der Berechtigungsdatei.
82
+
83
+ ## 2. Warum eine `ask`-Zeile eine Ausweitung ist
84
+
85
+ Gegen die Behandlung einer ergänzten `ask`-Zeile als Ausweitung lässt sich einwenden: `ask` heißt
86
+ Rückfrage, und ein nicht gelisteter Befehl führt beim ausgelieferten `defaultMode` ebenfalls zu
87
+ einer Rückfrage; mechanisch ändere die Zeile also nichts.
88
+
89
+ **Der Einwand trägt nicht, und zwar unabhängig davon, ob er stimmt.** Was die Zeile ändert, ist
90
+ nicht der Mechanismus, sondern die **Erklärung**: Nach `05-working-model.md` Abschnitt 3.2 führt
91
+ der KI-Client *nur* Befehle aus, die im Overlay als freigegeben gelistet sind. Eine Zeile im
92
+ `ask`-Korb erklärt einen Befehl für freigegeben. **Genau daran ist `CR-OTP-G-001` gescheitert** –
93
+ nicht daran, dass `docker run` ohne Rückfrage liefe.
94
+
95
+ Dieser Antrag stützt sich deshalb auf **keine** gemessene Clientwirkung des `ask`-Korbs und
96
+ behauptet keine.
97
+
98
+ ## 3. Vorgeschlagene Änderung
99
+
100
+ 1. **Prüfung 37 (neu)** in `check_config`: Die drei Körbe der installierten Datei werden gegen
101
+ die aus `framework/runtime/permissions.json` und dem Manifest **erzeugte** Regelmenge gehalten.
102
+ Zwei Sätze, keine Ausnahmen:
103
+ - **Fehlt eine erzeugte Regel, ist es ein Fehler** – in jedem Korb.
104
+ - **Steht eine Regel zu viel, entscheidet der Korb:** in `deny` zulässig (Verschärfung), in
105
+ `ask` und `allow` ein Fehler (Ausweitung) – **abzüglich der Platzhalterschlitze**, die das
106
+ Projekt gefüllt hat.
107
+ 2. **Der gefüllte Befehlsschlitz darf das Präfixzeichen des Clients nicht tragen.**
108
+ `clientmap._befehl` hängt es bei einem offenen Projektplatzhalter ausdrücklich **nicht** an,
109
+ mit Begründung im Code. Wer es von Hand nachträgt, macht aus der Freigabe eines Befehls die
110
+ Freigabe einer Befehlsfamilie. Gilt nur bei `permission_exec_match: prefix`.
111
+ 3. **`clientmap.basket_rules(quelle, man, korb)`** wird öffentlich – dieselbe Bauart wie
112
+ `core_rules`, damit die Prüfung nicht auf eine private Funktion greift.
113
+ 4. **T1 berichtigt:** Der Kommentarkopf sagt „Ebene 3"; was dem Projekt gehört, steht zwei Sätze
114
+ weiter unten ohnehin schon („Platzhalter in spitzen Klammern trägt der Overlay Owner hier
115
+ ein – das ist der einzige Teil dieser Datei, der dem Projekt gehört").
116
+ 5. **T2 berichtigt:** Die Spalte in `OVERLAY.md` Abschnitt 6 sagt je Zeile die Wahrheit – die
117
+ vier Zeilen ohne Platzhalter tragen „nur Regelschicht (Abschnitt 6), kein Eintrag in
118
+ `<PERMISSIONS_FILE>`". Ein Satz unter der Tabelle erklärt den Unterschied.
119
+ 6. **T3 berichtigt:** Der Zusatz „KANN im Overlay für Stufe niedrig auf allow gesetzt werden"
120
+ entfällt in `03-security.md` **und** in `OVERLAY.md` Abschnitt 6 Zeile 1.
121
+ 7. **Sonden und Gegenprobe** zu Prüfung 37 gegen eine **frische Installation** – die Bauart von
122
+ Prüfung 33, aus demselben Grund: Die Prüfung hängt an einer installierten Datei, nicht an
123
+ einem Repositoriumstext.
124
+
125
+ ## 4. Auswirkungen
126
+
127
+ - **Der Pilot bekommt einen Fehler.** `Bash(mvn -B test:*)` steht dort seit dem Heben auf 0.37.0.
128
+ **Das ist der Zweck der Prüfung** und kein Nebenschaden: Die Zeile ist genau die stille
129
+ Ausweitung, die Kandidat 2 beschreibt. Der zweite dort benannte Posten – ein belegter
130
+ `<LINT_COMMAND>`, obwohl das Overlay „Lint: nicht vorhanden" sagt – bleibt **unbeanstandet**;
131
+ ein gefüllter Schlitz ist ein gefüllter Schlitz, und den Abgleich mit dem Overlaytext leistet
132
+ diese Prüfung nicht.
133
+ - **Ein Projekt, das eine `allow`-Regel absichtlich streicht, bekommt jetzt einen Fehler.** Das
134
+ Streichen ist eine Verschärfung und damit sachlich zulässig – aber `03-security.md` Abschnitt 4
135
+ sagt normativ zu, dass die Regel dasteht. Der Weg dahin ist der Ausnahmeprozess, nicht die
136
+ stille Kürzung.
137
+ - **Bei `devin-desktop` wirkt Punkt 2 nicht** (`permission_exec_match: literal`). Die Prüfung
138
+ läuft dort, der Präfixteil greift nicht – und das ist keine Lücke, sondern die Abwesenheit
139
+ ihres Gegenstands.
140
+ - **Prüfung 37 fängt gegen den unmittelbaren Vorstand nichts**, weil die erzeugte Datei per
141
+ Konstruktion zu sich selbst passt. **Ihr Gegenbeweis ist deshalb eine Konstruktion und kein
142
+ Abzählen** – die neun Eingriffe aus 1.1, gegen 0.38.0 sämtlich stumm. Das gehört so in den
143
+ Wirkungsnachweis, mit derselben Ehrlichkeit wie bei Prüfung 35 und 36.
144
+ - **`CR-OTP-G-001` bleibt abgelehnt.** Dieser Antrag beseitigt seinen dritten Ablehnungsgrund
145
+ nicht, sondern **bestätigt ihn**: Es gibt keine Änderungsschicht, und es soll keine geben. Die
146
+ Ersatzwege (A) und (B) seines Abschnitts 6.3 bleiben die einzigen.
147
+
148
+ ## 5. Vorlage zur Entscheidung
149
+
150
+ | Nr. | Frage | Vorschlag | Preis |
151
+ |---|---|---|---|
152
+ | **E1** | Bekommt ein Overlay eine ausgewiesene Erweiterungsschicht für die Berechtigungsdatei – oder wird die Grenze bestätigt? | **Grenze bestätigen.** Drei Gründe, jeder für sich tragend: (1) **Der Kanal existiert bereits** – „weitere gemäß Overlay Abschnitt 6" ist eine Anweisung an den Client, und sie ist richtig formuliert (1.3). (2) **Eine Erweiterung wäre nicht haltbar:** Die Datei steht in `shared_seed`, `--update` fasst sie nie an; eine nur bei der Installation gelesene Erweiterungsquelle wäre eine Zusage, die beim ersten Releasewechsel bricht. (3) **Das Verschärfungsprinzip verbietet sie:** Jede zusätzliche `ask`-Zeile für einen Befehl ist eine Ausweitung der Erklärung (Abschnitt 2) | **Ein Projekt mit mehr als drei Befehlen behält sie nur in der Regelschicht.** Wer die Berechtigungsdatei liest, sieht sie dort nicht – und das ist eine Unvollständigkeit, die man aushalten muss. **Die Gegenposition ist ernst zu nehmen:** Eine geprüfte Erweiterung, die *ausschließlich* `ask` befüllen und `deny` nie anfassen dürfte, wäre mechanisch möglich. Sie scheitert an (2), nicht an (3) – und an (2) scheitert sie vollständig |
153
+ | **E2** | Entsteht Prüfung 37, und wie scharf? | **Ja, in zwei Sätzen: Fehlen ist immer ein Fehler; Überzähliges ist in `deny` zulässig und in `ask`/`allow` ein Fehler.** Das ist das Verschärfungsprinzip, mechanisch angewandt – nicht eine dritte Regel neben ihm. **Die Alternative, `deny_must_contain` einfach auf alle 54 Regeln zu erweitern, wäre zu wenig:** Sie fängt M3 bis M5, aber weder die ergänzte `allow`-Zeile noch den geleerten `ask`-Korb | **Ein Projekt, das eine `allow`-Regel streicht, bekommt einen Fehler für eine Verschärfung.** Das ist gewollt (Abschnitt 4), aber es ist ein Preis: Die Prüfung ist an dieser Stelle strenger als das Prinzip, auf das sie sich beruft. **Und sie prüft die Form, nicht den Sinn** – ein Schlitz, der mit einem unsinnigen Befehl gefüllt ist, besteht sie |
154
+ | **E3** | Wird ein gefüllter Befehlsschlitz auf das Präfixzeichen geprüft? | **Ja.** Die Abbildung lässt es bewusst weg und schreibt den Grund daneben; ein von Hand nachgetragenes `:*` hebelt genau diese Entscheidung aus. **Am Piloten steht es bereits** – das ist kein hypothetischer Fall | **Ein Projekt, das wirklich eine Befehlsfamilie freigeben will, kann es nicht mehr still tun** und braucht einen Änderungsantrag. Das ist der Zweck. **Bei `devin-desktop` greift der Teil nicht**, weil der Client Befehle wörtlich sperrt – die Prüfung ist dort um diesen Gegenstand ärmer, und das gehört gesagt statt verschwiegen |
155
+ | **E4** | Was geschieht mit T1, T2 und T3? | **Alle drei berichtigen, T3 durch Streichung.** Die Freigabestufe je Kontrollstufe im Overlay zu verankern, wäre die Alternative – sie scheitert daran, dass die Fußnote derselben Tabelle sie bereits verbietet (V10). **Eine Zusage, die im eigenen Dokument widerlegt wird, wird nicht durch Mechanik gerettet, sondern gestrichen** – so ist B11 entschieden worden | **Eine dokumentierte Freiheit entfällt.** Wer sie gebraucht hat, merkt es erst jetzt – aber sie war nie ausführbar: Eine so gesetzte `allow`-Zeile wäre nach E2 ab sofort ein Fehler. **Der Preis ist also nicht der Verlust, sondern das Eingeständnis**, dass sie zwölf Releases lang unausführbar dastand |
156
+ | **E5** | Läuft Prüfung 37 im Normallauf oder nur unter `--strict-overlay`? | **Im Normallauf.** Sie trägt die Kernzusagen B1 bis B6, wie `deny_must_contain` daneben. Der Auslieferungszustand mit offenen Platzhaltern besteht sie – ein noch nicht gefüllter Schlitz ist ein Schlitz | **Jeder Lauf jedes Projekts fährt sie mit.** Kostet Laufzeit (einmal rendern) und macht den Normallauf strenger, ohne dass jemand es bestellt hat. **Das ist bei einer Kernzusage die richtige Seite des Irrtums** |
157
+ | **E6** | Ein eigenes Release oder Anhang an das nächste? | **Ein eigenes Release, `0.39.0`.** Der Gegenstand ist geschlossen, er ist P1, und er ist der erste seit vier Releases, der eine Zusage gegenüber einem **Projekt** betrifft statt eines Prüfwerkzeugs | **Das vierzehnte Release in zwei Tagen.** Und wieder ist kein Ergebnis eine Messung am Client – gemessen ist der Validator, nicht die Wirkung der Datei |
158
+
159
+ ## 6. Entscheidung
160
+
161
+ | Feld | Inhalt |
162
+ |---|---|
163
+ | Entscheidung | **Angenommen, alle sechs Fragen wie vorgelegt.** E1 die Grenze wird bestätigt, es entsteht keine Erweiterungsschicht; E2 Prüfung 37 in zwei Sätzen; E3 der Präfixteil, mit benannter Lücke bei `devin-desktop`; E4 T1 bis T3 berichtigt, T3 durch Streichung, die MCP-Zeile ausdrücklich nicht; E5 Normallauf; E6 eigenes Release `0.39.0` |
164
+ | Datum | 2026-09-13 |
165
+ | Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
166
+ | Decision-Log-Einträge | D-76 (ein Overlay erweitert die Berechtigungsdatei nicht – der Kanal für weitere Befehle ist die Regelschicht), D-77 (die Körbe werden gegen die Kernquelle geprüft: Fehlen ist immer ein Fehler, Überzähliges nur in `ask` und `allow`) |
167
+ | Auflagen | **Der Gegenbeweis wird als Konstruktion ausgewiesen, nicht als Abzählen** – Prüfung 37 findet gegen 0.38.0 nichts, weil die erzeugte Datei zu sich selbst passt; ihr Wert hängt allein an den Sonden. **Der Befund am Piloten wird gemeldet, nicht behoben** – die Datei dort ist untracked und gehört dem Piloten. **Und die MCP-Zeile bleibt unberührt**; sie ist der Entlastungsbefund dieser Gegenprüfung, und wer sie mitstreicht, zerstört einen stimmigen Mechanismus |
168
+ | Ziel-Release | `0.39.0` |
169
+ | Umsetzung | umgesetzt mit `0.39.0` |