@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,178 @@
1
+ # Änderungsantrag `CR-2026-062`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Zwei Listen für dieselbe Sache – es sind vier, und die unbewachte trägt die Zusagen S3 und A1 |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-13 |
8
+ | Betroffene Artefakte | `clientmap.py` (Vokabular, Brücke, `frontmatter_werkzeuge`), `install.py` (drei Aufrufstellen, `DENY_VERB_EIMER` entfällt), `clients/devin-desktop/manifest.json` (`tool_names_unmapped` in beiden Blöcken), `clients/devin-desktop/CLIENT_PACK.md` (Änderungsverlauf), `clients/README.md` (Anleitung für ein neues Pack), `tests/scripts/validate-framework.py` (Prüfung 38 neu, Kopfkommentar 32 bis 38, nachgezogener Anker und Verbtabelle der Prüfung 33), `tests/scripts/probe-pruefungen.py` (neun Sonden, zwei Gegenproben), `governance/DECISION_LOG.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | **Core** – die Abbildung trägt die Zusagen S3 (Werkzeugsperre je Skill) und A1 (rein lesendes Reviewprofil); beide sind Framework-Gut |
10
+ | Art | Änderung; erledigt **Kandidat 1** der Übergabe (seit 0.35.0 vertagt) und **Kandidat 4** (Kopfkommentar) |
11
+ | Dringlichkeit | **P2.** Ausgeliefert ist heute nichts Falsches – keine der vierzehn Quellen trifft einen der stillen Fälle. Die Bauform ist trotzdem die schwerste, die dieses Projekt kennt: eine Abbildung, die bei jeder Lücke stumm das Falsche tut, an zwei Stellen, unter zwei Zusagen |
12
+
13
+ ## 1. Anlass
14
+
15
+ **Kandidat 1** steht seit fünf Releases: *„`skill_frontmatter.tool_names` und `hook_tools`
16
+ sind zwei Listen für dieselbe Sache und auseinandergelaufen – `tool_names.edit` führt kein
17
+ `NotebookEdit`."* Vertagt worden ist er mit Grund: *„Die Vereinheitlichung ändert
18
+ `allowed-tools` still mit, und das gehört in einen eigenen Antrag."*
19
+
20
+ **Der Befund ist gegengeprüft** (`tests/protocols/2026-09-13-gegenpruefung-werkzeugabbildung.md`,
21
+ zwanzig Messungen, davon sieben Kontrollläufe). **Er bestätigt sich – und er ist ein
22
+ anderer, als der Kandidat sagt.**
23
+
24
+ ### 1.1 Befund 1: Es sind vier Abbildungen, nicht zwei
25
+
26
+ | Stelle | Vokabular | Trägt | Bewacht? |
27
+ |---|---|---|---|
28
+ | `skill_frontmatter.tool_names` | `read, grep, glob, edit, exec` | `allowed-tools` – eine **Vorabfreigabe** (B01) | **nein** |
29
+ | `agent_frontmatter.tool_names` | dieselben fünf, zeichengleicher Block | `tools` des Profils – eine **Entfernung aus dem Vorrat** (A1, D-68) | **nein** |
30
+ | `hook_tools` | `read, search, exec, write` | Hook-Matcher **und** `disallowed-tools` (S3, D-64) | ja |
31
+ | `permission_tools` | `read, search, write, exec, fetch, mcp` | die Berechtigungsdatei, B1 bis B6 | ja |
32
+
33
+ Dazu `DENY_VERB_EIMER` in `install.py` als fünfte Stelle: die Brücke zwischen dem
34
+ Vokabular der Quelle und dem der Durchsetzung. Sie führt `edit`, `write`, `exec`, `read`
35
+ und `search` – **drei Verben der Quelle und zwei der Durchsetzungsschicht** – und kennt
36
+ `grep` und `glob` nicht.
37
+
38
+ ### 1.2 Befund 2: Drei Abbildungen brechen ab, eine reicht durch
39
+
40
+ Dieselbe Lücke, an einer echten Installation gemessen:
41
+
42
+ | Eingriff ins Manifest | Ergebnis |
43
+ |---|---|
44
+ | `skill_frontmatter.tool_names` verliert `grep` | **durchgelaufen** → `allowed-tools: Read, grep, Glob` |
45
+ | `agent_frontmatter.tool_names` verliert `read` | **durchgelaufen** → `tools: read, Grep, Glob` |
46
+ | **beide `tool_names`-Blöcke ganz geleert** | **durchgelaufen** → `tools: read, grep, glob` |
47
+ | *Kontrolle:* `hook_tools` verliert `search` | **Abbruch** |
48
+ | *Kontrolle:* `hook_tools.search` leer | **Abbruch** |
49
+ | *Kontrolle:* `permission_tools` verliert `exec` | **Abbruch** |
50
+
51
+ Die dritte Zeile liefert das Reviewprofil `fw-reviewer` mit drei Werkzeugnamen aus, die
52
+ der Client nicht kennt – und stellt damit genau den Fall her, den Zeile **A1** desselben
53
+ Packs als **nicht gemessen** ausweist: *„dass ein Profil, dessen `tools`-Liste sich zu
54
+ keinem Werkzeug auflöst, gar nicht erst gestartet wird."*
55
+
56
+ ### 1.3 Befund 3: `permissions.deny: glob` erzeugt lautlos keine Sperre
57
+
58
+ Gemessen: `deny: [glob, grep]` in `fw-plan/SKILL.md` – erzeugte Sperre **keine**,
59
+ Validator **0 Fehler, 0 Warnungen**. Dieselbe Bauform, die D-66 für Argumentmuster
60
+ gemessen hat: *„Wer ein Argumentmuster schreibt, hat gar keine Schranke, nicht bloß eine
61
+ gröbere."*
62
+
63
+ **Und diese Nicht-Abbildung ist nicht deklariert.** Der Docstring von `deny_abbilden`
64
+ führt die *andere* Nicht-Abbildung – die befehlsgenauen Einträge – mit ausdrücklichem
65
+ Verweis auf D-47 („Bauart wie `hook_tools_absent`") und im Manifest unter
66
+ `skill_deny_unmapped`. **`grep` und `glob` stehen nirgends.** Ein Kanal ohne Deklaration,
67
+ in derselben Funktion, die D-47 zitiert.
68
+
69
+ **Betroffen ist heute niemand:** Keine der vierzehn ausgelieferten Quellen schreibt
70
+ `deny: grep` oder `deny: glob`. Für einen projekteigenen `prj-*`-Skill wirkt der Befund
71
+ sofort.
72
+
73
+ ### 1.4 Befund 4 – die Entlastung: Der Kandidat schlägt die falsche Behebung vor
74
+
75
+ Der inhaltliche Unterschied ist echt, **seine Richtung ist die zulässige**: Bei allen fünf
76
+ Verbpaaren ist die Sperrliste mindestens so weit wie die Vorabfreigabe
77
+ (`tool_names.edit` = `Edit, Write` ⊆ `hook_tools.write` = `Edit, Write, NotebookEdit`).
78
+
79
+ **`tool_names` auf `hook_tools` zu heben wäre eine Ausweitung** der Vorabfreigabe; die
80
+ Gegenrichtung wäre eine Lücke in einer Sperre. **Zu vereinheitlichen ist nicht der Inhalt
81
+ der Listen, sondern die Brücke zwischen den Vokabularen und die Disziplin, mit der sie
82
+ bewacht werden.**
83
+
84
+ ### 1.5 Befund 5 – nicht gesucht: Ein Manifest widerspricht sich selbst
85
+
86
+ `devin-desktop` erklärt unter `hook_tools_absent`: *„Dieser Client führt kein eigenes
87
+ Suchwerkzeug"* – und reicht zugleich in jeder installierten Skilldatei `grep` und `glob`
88
+ als Werkzeugnamen durch. **Beides kann nicht stimmen.** Welche Seite falsch ist, ist
89
+ **unerhoben**; Zeile S3 dieses Packs sagt es selbst: *„Das Durchreichen ist belegt, die
90
+ Wirkung nicht."*
91
+
92
+ ## 2. Warum eine Ausweitung der Vorabfreigabe zählt, obwohl `allowed-tools` keine Zusage ist
93
+
94
+ Gegen Abschnitt 1.4 lässt sich einwenden: Nach **B01** ist `allowed-tools` ohnehin keine
95
+ Beschränkung, sondern eine Vorabfreigabe für den aufrufenden Turn. Eine weitere Zeile
96
+ darin ändere nichts, was das Framework zusagt.
97
+
98
+ **Der Einwand trägt nicht, und zwar aus demselben Grund wie bei `CR-2026-061` Abschnitt 2:**
99
+ Was eine Vorabfreigabe ändert, ist nicht der Mechanismus, sondern die **Rückfrage, die
100
+ entfällt**. Ein `NotebookEdit`, das heute eine Rückfrage auslöst, löste danach keine mehr
101
+ aus – bei drei Skills, für ein Werkzeug, das keine der vierzehn Quellen je genannt hat.
102
+ **Das ist genau der Vorgang, für den das Verschärfungsprinzip einen Antrag verlangt**, und
103
+ er gehört nicht in einen Nebensatz beim Aufräumen.
104
+
105
+ ## 3. Vorgeschlagene Änderung
106
+
107
+ 1. **Ein deklariertes Vokabular, an einer Stelle.** `clientmap.FRONTMATTER_VERBEN =
108
+ ("read", "grep", "glob", "edit", "exec")` – die Verben, die ein Skill oder ein
109
+ Agentenprofil des Kerns schreiben darf.
110
+ 2. **Eine Brücke, an derselben Stelle.** `clientmap.VERB_BRUECKE` bildet sie auf das
111
+ Vokabular der Durchsetzung ab (`grep`/`glob` → `search`, `edit` → `write`).
112
+ `DENY_VERB_EIMER` in `install.py` entfällt.
113
+ 3. **`clientmap.frontmatter_werkzeuge(man, block, verb)`** wird der einzige Weg von einem
114
+ Verb zu Werkzeugnamen. Drei Ausgänge, keiner davon still: abgebildet → die Namen; in
115
+ `tool_names_unmapped` deklariert → das Verb unverändert; weder noch →
116
+ `AbbildungsFehler`. Bauform wie `hook_tools_absent` nach D-47.
117
+ 4. **`permissions.deny` kennt das ganze Vokabular.** `grep` und `glob` bilden auf
118
+ `hook_tools.search` ab; ein Verb außerhalb des Vokabulars bricht die Installation ab,
119
+ statt lautlos auszufallen.
120
+ 5. **Geprüft wird in beiden Zweigen, umgeschrieben nur im einen.** Ein Pack mit
121
+ `tools_format: list` lässt `allowed-tools` unberührt – ein Schreibfehler soll trotzdem
122
+ beim Installieren auffallen und nicht im übernehmenden Projekt.
123
+ 6. **`devin-desktop` deklariert seine fünf nicht abgebildeten Verben**, samt
124
+ `_tool_names_unmapped_note`, die den Widerspruch aus 1.5 festhält.
125
+ 7. **Prüfung 38 (neu)**, vier Gegenstände: der verlorene Anker; die Deklaration je Pack;
126
+ die **Richtung** zwischen Vorabfreigabe und Sperre; die Verben der ausgelieferten
127
+ Quellen.
128
+ 8. **Der Kopfkommentar des Validators trägt 32 bis 38 nach** (Kandidat 4).
129
+
130
+ ## 4. Auswirkungen
131
+
132
+ - **Die erzeugten Dateien ändern sich nicht, Byte für Byte.** Gemessen für beide Packs:
133
+ `fw-plan` und `fw-reviewer` tragen nach der Änderung dasselbe wie vorher. Das ist der
134
+ Beleg dafür, dass hier eine **Disziplin** eingezogen und keine Zusage verschoben wird.
135
+ - **Prüfung 38 fängt bei den beiden Packs nichts** – nachdem `devin-desktop` deklariert
136
+ hat. Gegen 0.39.0 meldet sie **zehn** Fundstellen, und das sind Deklarationslücken,
137
+ keine Fehlfunktionen. **Gegenstand 3 (die Richtung) ist eine reine Verankerung**, wie
138
+ Prüfung 35 und 36.
139
+ - **Ein Projekt, das einen `prj-*`-Skill mit `deny: write` oder `allowed-tools: search`
140
+ schreibt, bekommt ab sofort einen Abbruch statt eines stillen Ausfalls.** Das ist der
141
+ Zweck – und es ist ein Bruch für jeden, der sich auf die lockere Fassung verlassen hat.
142
+ Die Verben `write` und `search` waren in `permissions.deny` bis 0.39.0 zulässig; sie
143
+ sind es nicht mehr.
144
+ - **Der Widerspruch bei `devin-desktop` bleibt stehen.** Er wird deklariert, nicht
145
+ behoben; eine Behebung wäre eine Vermutung.
146
+ - **Die Vertagung seit 0.35.0 war richtig und ist jetzt überholt.** Der Grund („ändert
147
+ `allowed-tools` still mit") stimmte; die Behebung ist eine andere als die vertagte.
148
+
149
+ - **Prüfung 33 muss mitgezogen werden.** Sie hält einen Anker auf `DENY_VERB_EIMER` in
150
+ `install.py` und führt daneben eine **eigene**, bewusst unabhängige Verbtabelle. Der
151
+ Anker zeigt nach der Verschiebung ins Leere; die Tabelle führte `write` und `search`
152
+ und kannte `grep` und `glob` nicht – **sie teilte damit genau die Lücke, die sie hätte
153
+ fangen sollen.** Beides wird nachgezogen, die Unabhängigkeit der Tabelle bleibt.
154
+
155
+ ## 5. Vorlage zur Entscheidung
156
+
157
+ | Nr. | Frage | Vorschlag | Preis |
158
+ |---|---|---|---|
159
+ | **E1** | Werden die beiden Listen inhaltlich vereinheitlicht – oder wird nur ihre Richtung verankert? | **Nur die Richtung.** Die Sperrliste darf für kein Verbpaar enger sein als die Vorabfreigabe; die umgekehrte Abweichung bleibt zulässig und ist heute der Fall. **Eine inhaltliche Vereinheitlichung ginge nur in eine der beiden falschen Richtungen:** `tool_names` heben ist eine Ausweitung der Vorabfreigabe (Abschnitt 2), `hook_tools` kürzen eine Lücke in einer Sperre | **Zwei Listen bleiben zwei Listen**, und wer sie nebeneinander liest, sieht weiterhin einen Unterschied. Er ist ab jetzt begründet und bewacht – aber er ist noch da. **Die Gegenposition ist vertretbar:** Eine Liste wäre einfacher zu verstehen als eine Regel über zwei Listen |
160
+ | **E2** | Wird ein unbekanntes Verb im Frontmatter ein Fehler – oder bleibt es beim Durchreichen? | **Ein Fehler.** Die drei anderen Abbildungen desselben Manifests brechen im selben Fall ab, gemessen; die vierte war die Ausnahme, nicht die Regel. Ein Client, der die Verben wirklich unverändert führt, deklariert das in `tool_names_unmapped` – die Bauform, die D-47 für `hook_tools_absent` und D-70 für `agent_start_tools_absent` gesetzt haben | **`devin-desktop` muss fünf Verben deklarieren, die es nie abgebildet hat** – und die Deklaration sagt „unerhoben", nicht „so ist es". Das ist ehrlicher als das Schweigen und trotzdem keine Erkenntnis. **Und ein Projekt, das heute an der Lücke vorbei installiert, bekommt einen Abbruch** – gewollt, aber ein Bruch |
161
+ | **E3** | Bekommt `permissions.deny` die beiden fehlenden Verben `grep` und `glob`? | **Ja, auf `hook_tools.search`.** Sie sind die meistgenannten Verben des Vokabulars – vierzehn Fundstellen je, im Nachbarfeld desselben Frontmatters. Dass ausgerechnet sie in der Sperrabbildung fehlen, ist kein Entwurf, sondern eine Lücke | **Es fängt heute nichts:** Keine ausgelieferte Quelle schreibt `deny: grep`. Das ist eine **Verankerung**, und sie gehört als solche ausgewiesen. **Und ob `Grep, Glob` in `disallowed-tools` wirklich wirken, ist nicht gemessen** – die Abbildung erzeugt ab jetzt etwas, dessen Wirkung offen ist. Das ist weniger als bei `Write, Edit` (D-64) und mehr als das bisherige Nichts |
162
+ | **E4** | Wo stehen Vokabular und Brücke? | **In `clientmap.py`**, von `install.py` und vom Validator gelesen – dieselbe Bauart wie `core_rules` und `basket_rules`. **Drei Stellen brauchen sie**, und eine davon ist eine Prüfung; ein Wert, den eine Prüfung aus einem anderen Modul liest, kann nicht auseinanderlaufen | **`clientmap.py` bekommt Wissen über das Quellformat der Skills**, das bisher in `install.py` stand – das Modul heißt „Semantikabbildung der Berechtigungs- und Hook-Konfiguration" und trägt jetzt mehr. Die Alternative, das Vokabular im Validator zu doppeln, ist genau der Fehler, den dieser Antrag behebt |
163
+ | **E5** | Was prüft Prüfung 38, und wo läuft sie? | **Vier Gegenstände im Normallauf:** verlorener Anker, Deklaration je Pack, Richtung, Verben der Quellen. Der vierte Gegenstand ist der einzige, der die **Quellen** misst statt der Manifeste – und er ist der billigste Weg, einen Schreibfehler vor der Auslieferung zu fangen | **Gegenstand 3 fängt heute nichts** und wird es bei disziplinierter Pflege nie tun – eine Verankerung, deren Wert allein an ihren Sonden hängt. **Gegenstand 2 zählt Deklarationen, nicht Richtigkeit:** Ein Pack, das fünf falsche Werkzeugnamen sauber deklariert, besteht sie |
164
+ | **E6** | Wird der Widerspruch bei `devin-desktop` (Befund 5) hier behoben? | **Nein – nur festgehalten.** Welche Seite falsch ist, entscheidet eine Erhebung an diesem Client, und sie ist nicht gefahren. Der Widerspruch steht in der `_tool_names_unmapped_note` und in der Roadmap | **Ein bekannter Widerspruch bleibt im Repositorium stehen.** Das ist unbefriedigend – und die Alternative wäre, eine der beiden Seiten zu raten. **Genau das ist die Bauform, die dieses Projekt sich abgewöhnt** |
165
+ | **E7** | Wird der Kopfkommentar des Validators um 32 bis 37 ergänzt (Kandidat 4)? | **Ja, im selben Zug.** Eine achtunddreißigste Prüfung einzutragen und die sechs davor auszulassen, schriebe die Lücke fort. Der Gegenstand ist derselbe Absatz | **Ein zweiter Kandidat in einem Release.** Die Alternative wäre ein eigener Antrag für sechs Zeilen Buchhaltung – mehr Verwaltung als Gegenstand |
166
+ | **E8** | Ein eigenes Release oder Anhang an das nächste? | **Ein eigenes Release, `0.40.0`.** Der Gegenstand ist geschlossen, und er räumt den ältesten offenen Kandidaten ab | **Das fünfzehnte Release in drei Tagen**, und wieder ist kein Ergebnis eine Messung am Client. Gemessen sind Abbildung, Validator und zwei Installationen |
167
+
168
+ ## 6. Entscheidung
169
+
170
+ | Feld | Inhalt |
171
+ |---|---|
172
+ | Entscheidung | **Angenommen, alle acht Fragen wie vorgelegt.** E1 nur die Richtung, die Inhalte bleiben unberührt; E2 ein unbekanntes Verb ist ein Fehler, die Abwesenheit wird deklariert; E3 `grep` und `glob` auf `search`, als Verankerung ausgewiesen; E4 Vokabular und Brücke in `clientmap.py`; E5 Prüfung 38 mit vier Gegenständen im Normallauf; E6 der Widerspruch wird festgehalten, nicht behoben; E7 Kopfkommentar 32 bis 38; E8 eigenes Release `0.40.0` |
173
+ | Datum | 2026-09-13 |
174
+ | Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
175
+ | Decision-Log-Einträge | D-78 (ein Werkzeugverb des Frontmatters wird abgebildet oder seine Nichtabbildung deklariert), D-79 (`permissions.deny` kennt dasselbe Vokabular wie `allowed-tools`), D-80 (die Sperrliste ist nie enger als die Vorabfreigabe) |
176
+ | Auflagen | **Der Nachweis, dass sich nichts ändert, gehört in den Wirkungsnachweis** – die erzeugten Dateien beider Packs vor und nach der Änderung, Byte für Byte. **Der Gegenbeweis wird in zwei Zuschnitten ausgewiesen:** wie ausgeliefert (eine Fundstelle, der verlorene Anker) und mit neutralisiertem Anker (zehn Fundstellen). Wer nur die zweite Zahl nennt, behauptet eine Messung, die der ausgelieferte Lauf nicht macht. **Und Gegenstand 3 wird als Verankerung benannt, nicht als Behebung** |
177
+ | Ziel-Release | `0.40.0` |
178
+ | Umsetzung | umgesetzt mit `0.40.0` |
@@ -0,0 +1,207 @@
1
+ # Änderungsantrag `CR-2026-063`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Der Skillaufruf ist ein Werkzeugaufruf – und die Berechtigungsdatei des Frameworks kennt ihn nicht |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-14 |
8
+ | Betroffene Artefakte | `framework/runtime/permissions.json` (Verb `skill`, zwölf `allow`-Regeln), `clients/claude-code/manifest.json` (`permission_tools.skill`, `permission_name_tools`), `clients/devin-desktop/manifest.json` (`permission_tools.skill` leer samt Begründung), `clients/claude-code/CLIENT_PACK.md` (Zeile S2), `clientmap.py` (`_regel_rendern`), `framework/runtime/root-instruction.md` (Abschnitt 17), `framework/runtime/rules/00-framework-core.md`, `framework/core/05-working-model.md` (Abschnitte 1 und 3.6), `framework/core/06-prompting-rules.md` (Regel 7), `checklists/01-preflight.md`, `tests/EDGE_CASES.md` (G-20), `tests/scripts/validate-framework.py` (Prüfung 39, Pfadregelprüfung), `tests/scripts/probe-pruefungen.py`, `governance/DECISION_LOG.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | **Core** – die Berechtigungsdatei ist Ebene 3, und die Zusage S2 ist Framework-Gut |
10
+ | Art | Änderung; Anlass ist ein **externer** Befund, kein Kandidat der Übergabe |
11
+ | Dringlichkeit | **P1.** Ausgeliefert ist eine Aufforderung, die die Datei daneben nicht zulässt. Der Fehlschlag ist **stumm** und kostet die Zusage S3 – gemessen |
12
+
13
+ ## 1. Anlass
14
+
15
+ Ein Bericht aus einer Sitzung am Piloten (`skill-priority-improvement.md`, 2026-09-14, Devin
16
+ Desktop) hält fest, der Agent habe bei einer passenden Aufgabe mit `read` und
17
+ `find_file_by_name` gearbeitet statt mit `fw-code-explain` und `fw-repo-analyze`, und erst nach
18
+ Rückfrage die Skills verwendet. Er schließt daraus auf eine fehlende **Skill-Erkennung** und
19
+ empfiehlt, die Agentenlogik so zu ändern, dass sie Skills automatisch aufruft.
20
+
21
+ **Der Befund ist gegengeprüft** (`tests/protocols/2026-09-14-gegenpruefung-skillwahl.md`) und
22
+ **gemessen** (`tests/protocols/2026-09-14-erhebung-skillaufruf.md`, elf Läufe, davon vier
23
+ Kontroll- und Entlastungsläufe). **Er bestätigt sich – und seine Ursache ist eine andere, als
24
+ er sagt.**
25
+
26
+ ### 1.1 Befund 1: Der Aufruf scheitert an der eigenen Berechtigungsdatei
27
+
28
+ Der Skillaufruf ist bei `claude-code` ein **eigener Werkzeugaufruf** mit dem Namen `Skill`. Die
29
+ ausgelieferte Berechtigungsdatei führt ihn in **keinem** Korb und lässt ihn damit auf
30
+ `defaultMode: default` fallen – also auf die Rückfrage. Gemessen, mit Gegenprobe:
31
+
32
+ | Lauf | `allow` | Skill-Aufruf | Ergebnis |
33
+ |---|---|---|---|
34
+ | A1, A3 | wie ausgeliefert | `fw-code-explain` | **abgewiesen** (`toolDenialKind: user-rejected`) |
35
+ | B1, B2 | `Skill` ergänzt | `fw-code-explain` | läuft durch, `permission_denials` leer |
36
+
37
+ **Die Ursache liegt eine Ebene tiefer als das Pack.** `framework/runtime/permissions.json`
38
+ kennt sechs Werkzeugverben – `read`, `search`, `write`, `exec`, `fetch`, `mcp` – und keines
39
+ bezeichnet den Skillaufruf. `permission_tools` **beider** Packs führt dieselben sechs. **Eine
40
+ Freigabe für den Skillaufruf war in dieser Datei nie ausdrückbar.**
41
+
42
+ Und das Projekt wusste es dreimal, ohne es aufzuschreiben: `2026-09-12-B01-allowed-tools.md`
43
+ nennt den Skillaufruf ausdrücklich „als eigenen Werkzeugaufruf mit dem Namen `Skill` und damit
44
+ einzeln kontrollierbar"; zwei Läufe des 13.09. sind verworfen worden, weil „der `Skill`-Aufruf
45
+ scheiterte". **Aus dem dreimaligen Eigenverschulden ist nie ein Befund über die ausgelieferte
46
+ Datei geworden.**
47
+
48
+ ### 1.2 Befund 2: Der Rückfall ist stumm und kostet die Zusage S3
49
+
50
+ Nach der Abweisung liest die Sitzung die `SKILL.md` als gewöhnliche Datei und arbeitet ihren
51
+ Ablauf von Hand nach. **Die Ausgabe ist von einem gelungenen Lauf nicht zu unterscheiden** –
52
+ sie trägt Überschrift und Standardformat des Skills.
53
+
54
+ **Der Preis ist gemessen.** `fw-code-explain` trägt `disallowed-tools: Edit, Write,
55
+ NotebookEdit, Bash`. In Lauf A3 rief die nachgearbeitete Fassung `Bash` auf. In einem echten
56
+ Skill-Lauf wäre das nicht möglich gewesen: Die Sperre entfernt das Werkzeug aus dem Vorrat
57
+ (D-64). **Der stumme Rückfall verliert genau die Zusage, für die S3 seit 0.35.0 `[TECHNISCH]`
58
+ steht.**
59
+
60
+ Und er kommt so im Ergebnisbericht an (Lauf A3, wörtlich):
61
+
62
+ > „**Verwendete Skills:** `fw-code-explain` (v0.1.3). Der Aufruf über den Skill-Mechanismus
63
+ > schlug fehl …; die Skill-Definition wurde stattdessen aus `.claude/skills/…/SKILL.md`
64
+ > gelesen und inhaltlich befolgt."
65
+
66
+ Wer die Zeile überfliegt, liest eine Verwendung, die nicht stattgefunden hat. Das
67
+ Standardformat des Ergebnisberichts kennt für diesen Fall keine eigene Form.
68
+
69
+ ### 1.3 Befund 3: Die Skillwahl steht an fünf Stellen und erreicht den Agenten nirgends verbindlich
70
+
71
+ | Träger | Verbindlichkeit | Adressat |
72
+ |---|---|---|
73
+ | `06-prompting-rules.md:34` Regel 7 – die stärkste Formulierung | normativ | Modul über **Aufgabenanweisungen** → Mensch; Passiv lässt offen, wer handelt |
74
+ | `01-preflight.md:39` | **SOLL** | „Bearbeiterin oder Bearbeiter", „vor dem ersten Prompt" |
75
+ | `05-working-model.md` Abschnitt 1, Spalte **Referenz**, sechs von vierzehn Schritten | – | keine Pflichtspalte |
76
+ | `root-instruction.md` Abschnitt 17 | **ohne Marke** – die Datei führt null MUSS/SOLL/KANN | Agent, als letzter von 17 Abschnitten |
77
+ | `rules/00-framework-core.md` (always-on) | – | Agent – **die Wahl kommt dort nicht vor** |
78
+
79
+ Der Auslöser „Standardaufgaben" ist nirgends definiert und kommt im Kern kein zweites Mal vor.
80
+
81
+ **Gemessen, was daraus folgt** (Lauf A2, wörtlich): „**Verwendete Skills:** keine (Aufgabe
82
+ entspricht inhaltlich `fw-code-explain` …; **kein Skill-Aufruf nötig**)." Die Sitzung hat den
83
+ passenden Skill benannt und seinen Aufruf für entbehrlich erklärt – unter dem Wortlaut von
84
+ 0.40.0 vertretbar.
85
+
86
+ ### 1.4 Befund 4: Das Argumentmuster wirkt wörtlich, nicht als Präfix
87
+
88
+ | Lauf | `allow` | aufgerufen | Ergebnis |
89
+ |---|---|---|---|
90
+ | **C1** | `Skill(fw-code-explain)` | `fw-code-explain` | **läuft durch** |
91
+ | **D1** | `Skill(fw-*)` | `fw-code-explain` | **abgewiesen** |
92
+ | **E1** | `Skill(fw-plan)` | `fw-code-explain` | **abgewiesen** (Kontrolllauf) |
93
+
94
+ **Die Bauform ist die von D-66, mit umgekehrtem Vorzeichen.** Dort wirkte ein Argumentmuster in
95
+ `disallowed-tools` lautlos gar nicht – eine Sperre, die nichts sperrt. Hier gäbe ein
96
+ Präfixmuster **lautlos nichts frei**. Eine Regel `Skill(fw-*)` sähe richtig aus und täte
97
+ nichts.
98
+
99
+ ### 1.5 Befund 5 – die Entlastung: Die empfohlene Behebung lässt sich nicht bauen
100
+
101
+ Option 1 des Berichts – „Vor jeder Aufgabenbearbeitung automatisch prüfen … bei Übereinstimmung
102
+ Skills automatisch aufrufen", umzusetzen in der „Agent-Logik" – liegt **außerhalb der
103
+ Reichweite dieses Frameworks**. Leitwerk liefert Regeltexte, Skills, eine Berechtigungsdatei
104
+ und einen Hook; es ändert keine Agentenlogik. Ein Antrag dieser Art ist hier kein Antrag,
105
+ sondern eine Anforderung an den Hersteller – dieselbe Lage wie bei den vier Einträgen von
106
+ Paket 6.
107
+
108
+ **Und die Systemanweisung, die der Bericht als Beleg zitiert, ist keine Framework-Regel.** Nach
109
+ Abschnitt 2 der Wurzel-Anweisungsdatei hat eine Ablage außerhalb des Repositoriums **keine
110
+ Ebene dieser Hierarchie**.
111
+
112
+ ### 1.6 Befund 6 – nicht gesucht: Zeile S2 nennt keine einzige Grenze
113
+
114
+ Die Fähigkeitsmatrix führt in **S2** „Gezielter Aufruf", `[TECHNISCH]`, `[DOK]` – und nennt
115
+ weder die Rückfragepflicht noch die Argumentform noch den stummen Rückfall. Die Nachbarzeile S3
116
+ trägt seit 0.35.0 **drei** benannte Grenzen; S2 ist seit dem ersten Release unverändert.
117
+
118
+ ## 2. Warum zwölf wörtliche Regeln und nicht eine
119
+
120
+ Eine Vorabfreigabe ist nach B01 keine Zusage – **aber sie auszuweiten ist trotzdem eine
121
+ Ausweitung.** Das Argument aus `CR-2026-062` Abschnitt 2 gilt hier unverändert: Was sie ändert,
122
+ ist nicht der Mechanismus, sondern die **Rückfrage, die entfällt**.
123
+
124
+ **Und hier ist die Ausweitung messbar größer als sie aussieht.** Die Skill-Auflistung der
125
+ Messläufe führte **83** Einträge – davon **drei** mit dem Präfix `fw-` und **80 fremde** aus
126
+ einer nutzerglobalen Ablage. (Dass nur drei der zwölf Framework-Skills dort erscheinen, ist
127
+ kein Widerspruch, sondern die Zusage **S4**: `disable-model-invocation` hält die übrigen neun
128
+ aus dem Kontext – aufrufbar bleiben sie.) Eine Regel auf den blanken Werkzeugnamen `Skill`
129
+ gäbe **auch die 80** frei, und sie sind nach Regel 2.6 der Prioritätshierarchie **ebenenlos**.
130
+
131
+ Der Zuschnitt ist damit vorgezeichnet: freigegeben wird, was das Framework selbst ausliefert,
132
+ und nichts sonst. Dass das zwölf Zeilen statt einer kostet, ist **kein Entwurf, sondern ein
133
+ Messergebnis** (Befund 4).
134
+
135
+ ## 3. Vorgeschlagene Änderung
136
+
137
+ **Mechanik**
138
+
139
+ 1. **Ein Verb `skill` im Berechtigungsvokabular.** `permissions.json` bekommt zwölf
140
+ `allow`-Regeln, eine je ausgeliefertem Skill; der Kopfkommentar nennt das Verb und die
141
+ wörtliche Vergleichsform samt Fundstelle.
142
+ 2. **`permission_tools.skill` je Pack.** `claude-code`: `["Skill"]`. `devin-desktop`: `[]` mit
143
+ `_permission_tools_skill_note` – **unerhoben, nicht abwesend**, Bauform wie
144
+ `hook_tools_absent` nach D-47. Die leere Liste lässt die zwölf Regeln für dieses Pack
145
+ ersatzlos entfallen; das ist die strengere Seite.
146
+ 3. **`permission_name_tools` bei `claude-code`.** Werkzeuge, deren Regelargument ein **Name**
147
+ und kein Pfad ist. Für sie hängt die Abbildung weder das Wurzelpräfix noch das
148
+ Präfixzeichen an, und der Validator lässt sie neben `permission_path_tools` zu.
149
+ 4. **`clientmap._regel_rendern`** bekommt einen eigenen Zweig für `skill` – wie `exec` schon
150
+ einen hat.
151
+
152
+ **Text**
153
+
154
+ 5. **Abschnitt 17 der Wurzel-Anweisungsdatei** bekommt Auslöser, Zeitpunkt und Nachweis: Prüfung
155
+ vor jedem Schritt; wo der Standardarbeitsablauf einen Skill nennt, ist er der vorgesehene
156
+ Weg; ein anderer Weg wird im Ergebnisbericht benannt und begründet. Dazu der Satz zum
157
+ abgewiesenen Aufruf.
158
+ 6. **Die always-on-Kurzfassung** bekommt dieselbe Regel in einem Absatz – sie ist der einzige
159
+ Träger, der die Sitzung sicher erreicht **und** den Standardarbeitsablauf führt (belegt
160
+ durch Entlastungslauf G1).
161
+ 7. **`05-working-model.md`** macht die Spalte „Referenz" verbindlich und erweitert das
162
+ Standardformat des Ergebnisberichts um den Negativ- und den Abweisungsfall.
163
+ 8. **Regel 7** löst ihr Passiv auf; der **Preflight-Punkt** bleibt beim Menschen und verweist
164
+ auf die eigene Pflicht des Agenten.
165
+ 9. **Zeile S2** des Packs bekommt ihre drei gemessenen Grenzen.
166
+
167
+ **Prüfung**
168
+
169
+ 10. **Prüfung 39** mit drei Gegenständen: der verlorene Anker; **jeder ausgelieferte Skill hat
170
+ genau eine `allow`-Regel und jede Regel einen Skill**; die Regel trägt keine
171
+ Musterzeichen. Dazu die vier Regelträger: Jeder nennt die Skillwahl.
172
+ 11. **Grenzfall G-20** – ein abgewiesener Skill-Aufruf.
173
+
174
+ ## 4. Auswirkungen
175
+
176
+ | Bereich | Auswirkung |
177
+ |---|---|
178
+ | Erzeugte Berechtigungsdatei `claude-code` | **6 → 18 `allow`-Regeln.** Die zwölf neuen betreffen ausschließlich den Skillaufruf |
179
+ | Erzeugte Berechtigungsdatei `devin-desktop` | **unverändert**, 6 Regeln – das Verb ist dort unerhoben |
180
+ | Bestehende Installationen | **Prüfung 37 meldet zwölf fehlende `allow`-Regeln**, bis die Datei nachgezogen ist. Die Datei steht in `shared_seed` und wird nach der Erstinstallation nie wieder geschrieben (D-76) – das Nachtragen ist ein Handgriff des Overlay Owners und gehört in die Migrationshinweise |
181
+ | Sicherheit | **Zwölf Rückfragen entfallen, alle für Skills des Frameworks.** Was ein Skill dann tut, bleibt unverändert gesperrt: `disallowed-tools` wirkt (D-64), der Hook wirkt (D-69), `ask` auf Schreiben wirkt. Fremde Skills bleiben rückfragepflichtig |
182
+ | Agentenverhalten | **Nicht zugesagt.** Ob der verschärfte Text die Wahl verbessert, ist ein Sitzungstest und nicht gefahren |
183
+
184
+ ## 5. Vorlage zur Entscheidung
185
+
186
+ | Nr. | Frage | Vorschlag | Preis |
187
+ |---|---|---|---|
188
+ | **E1** | Bekommt das Berechtigungsvokabular überhaupt ein Verb für den Skillaufruf – oder bleibt es bei der Rückfrage, sauber deklariert? | **Ein Verb.** Das Framework fordert in Abschnitt 17 die Nutzung der Skills und macht sie in der Datei daneben rückfragepflichtig. Eine Regel, deren Befolgung das Framework selbst verteuert, ist keine Regel, sondern eine Reibung. **Und im rückfragefreien Betrieb ist die Rückfrage eine Abweisung** – gemessen | **Eine Ausweitung bleibt eine Ausweitung**, auch wenn sie nur eine Rückfrage erspart. **Die Gegenposition ist vertretbar:** Nach D-05 ist die Rückfrage der Normalfall, und wer sie für den Skillaufruf beseitigt, nimmt dem Menschen einen Kontrollpunkt, den er heute hat |
189
+ | **E2** | Ein Muster für alle Framework-Skills – oder zwölf wörtliche Regeln? | **Zwölf wörtliche.** Das ist **kein Entwurf, sondern gemessen**: `Skill(fw-*)` weist den Aufruf ab (D1), `Skill(fw-code-explain)` lässt ihn durch (C1), `Skill(fw-plan)` weist einen anderen Skill ab (E1, Kontrolllauf). Ein Muster gäbe lautlos nichts frei | **Zwölf Zeilen statt einer**, und ein dreizehnter Skill braucht seine eigene. **Genau das hält Prüfung 39 fest** – der Preis ist Pflege, und sie ist bewacht |
190
+ | **E3** | Werden die Regeln aus dem Skillverzeichnis **erzeugt** oder in die Datei **geschrieben**? | **Geschrieben.** Nach D-53 **ist** der Inhalt dieser Datei die Berechtigung; was sie gewährt, soll in ihr lesbar sein und nicht aus einem Verzeichnis berechnet werden. Ein erzeugender Weg hieße: Ein neuer Skill erteilt sich seine Vorabfreigabe selbst | **Zwei Quellen für dieselbe Menge**, und sie können auseinanderlaufen – genau der Befundtyp von `CR-2026-062`. **Deshalb hängt E3 an Prüfung 39**; ohne sie wäre der Vorschlag nicht vertretbar |
191
+ | **E4** | Was gilt für `devin-desktop`? | **Leere Liste mit Begründung** – unerhoben, nicht abwesend. Bauform wie `hook_tools_absent` (D-47) und `tool_names_unmapped` (D-78). Die Regeln entfallen dort ersatzlos, und das ist die strengere Seite | **Ein Pack bleibt unerhoben**, und zwar ausgerechnet das, an dem der Bericht entstanden ist. Die Alternative wäre, seine Seite zu raten – **die Bauform, die dieses Projekt sich abgewöhnt**. Neuer Klärungspunkt **K-33** |
192
+ | **E5** | Wo steht die Skillwahl künftig – nur in der Wurzel-Anweisungsdatei oder auch in der always-on-Schicht? | **In beiden.** Die always-on-Datei führt die vierzehn Schritte und den Satz „Schritte werden nicht übersprungen"; die Skillwahl gehört dorthin, wo der Schritt steht. **Entlastungslauf G1 belegt, dass die Datei die Sitzung ohne Werkzeugaufruf erreicht** | **Dieselbe Regel an zwei Stellen** – und Regeldopplung ist der Befundtyp von B11 und D-78. **Deshalb ist sie bewacht:** Prüfung 39 verlangt die Nennung an allen vier Trägern; sie prüft die **Anwesenheit**, nicht den Wortlaut |
193
+ | **E6** | Wird die Nichtverwendung begründungspflichtig – oder genügt es, sie zu nennen? | **Begründungspflichtig.** „Skills: keine" (Lauf A4) ist formal vollständig und sagt nichts. Was die Lücke sichtbar macht, ist der Satz *welcher Skill kam in Frage und warum nicht* | **Der Ergebnisbericht wächst**, und die Pflicht ist nicht durchsetzbar – kein Mechanismus prüft einen Bericht. **Sie ist eine Anweisung, und sie steht als solche da**; was sie trägt, ist die Prüfpflicht des Menschen |
194
+ | **E7** | Darf der Rückfall auf die `SKILL.md` weiterhin stattfinden? | **Ja – aber er heißt nicht mehr Verwendung.** Ein Verbot kostete Ergebnisqualität ohne Gegenwert: Die nachgearbeitete Fassung war in beiden Läufen brauchbar. Was schadet, ist nicht der Rückfall, sondern seine **Stille** | **Die Werkzeugbeschränkung des Skills fehlt dabei weiterhin** – gemessen, ein `Bash`-Aufruf in A3. Die Regel verlangt, sie trotzdem einzuhalten, und **das ist eine Anweisung ohne Mechanismus**. Ehrlicher als ein Verbot, das niemand durchsetzt, aber keine Zusage |
195
+ | **E8** | Ein eigenes Release oder Anhang an das nächste? | **Ein eigenes Release, `0.41.0`.** Der Gegenstand ist geschlossen, und er ist der erste, der aus einem **externen** Befund kommt | **Das sechzehnte Release in drei Tagen.** Und diesmal ist ein Ergebnis **doch** eine Messung am Client – die erste, die eine vollständige Installation misst statt eines Mechanismus |
196
+
197
+ ## 6. Entscheidung
198
+
199
+ | Feld | Inhalt |
200
+ |---|---|
201
+ | Entscheidung | **Angenommen, alle acht Fragen wie vorgelegt.** E1 ein Verb `skill`; E2 zwölf wörtliche Regeln, weil das Präfixmuster gemessen nicht wirkt; E3 in die Datei geschrieben und von Prüfung 39 bewacht; E4 `devin-desktop` deklariert die Enthaltung, K-33 neu; E5 beide Träger, Anwesenheit bewacht statt Wortlaut; E6 die Nichtverwendung ist begründungspflichtig; E7 der Rückfall bleibt erlaubt und heißt nicht Verwendung; E8 eigenes Release `0.41.0` |
202
+ | Datum | 2026-09-14 |
203
+ | Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
204
+ | Decision-Log-Einträge | D-81 (das Berechtigungsvokabular kennt den Skillaufruf; freigegeben ist nur, was das Framework ausliefert), D-82 (das Argument wird wörtlich verglichen – ein Muster gäbe lautlos nichts frei), D-83 (ein abgewiesener Skill-Aufruf ist keine Verwendung), D-84 (wo der Standardarbeitsablauf einen Skill nennt, ist er der vorgesehene Weg des Schrittes) |
205
+ | Auflagen | **Der Migrationshinweis gehört in den Änderungsverlauf**, nicht nur in diesen Antrag: Bestehende Installationen melden zwölf fehlende `allow`-Regeln, bis die Datei nachgezogen ist. **Der Wirkungsnachweis führt einen Lauf am Client** – dieselbe Aufgabe gegen eine Installation des neuen Standes, mit dem Nachweis, dass der Aufruf durchläuft. **Und die Grenze wird benannt:** Dass der verschärfte Text die Wahl verbessert, ist **nicht** gemessen und wird nicht behauptet |
206
+ | Ziel-Release | `0.41.0` |
207
+ | Umsetzung | umgesetzt mit `0.41.0` |
@@ -0,0 +1,141 @@
1
+ # Änderungsantrag `CR-2026-064`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Das Register der Prüfungen wird nicht nachgezählt – fünf Zahlen über den Prüfapparat, keine davon stimmt |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-14 |
8
+ | Betroffene Artefakte | `tests/scripts/validate-framework.py` (Prüfung 40 neu, Kopfkommentar: Eintrag 39 und 40, Satz zum Wirkungsnachweis), `tests/scripts/probe-pruefungen.py` (Kopfkommentar, sechs Sonden, zwei Gegenproben), `tests/TEST_CATALOG.md` (`FW-KO-01`, `FW-KO-05`), `governance/DECISION_LOG.md`, `docs/ROADMAP.md`, `CHANGELOG.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | **Core** – der Prüfapparat und sein Register sind Framework-Gut |
10
+ | Art | Änderung; Anlass ist ein Nebenbefund aus dem Migrationslauf am Piloten (Kandidat 2 der Übergabe) |
11
+ | Dringlichkeit | **P2.** Nichts ist ausgeliefert falsch *durchsetzbar*; falsch ist, was das Projekt über seinen eigenen Prüfstand behauptet. **Ein Abnahmetest (`FW-KO-05`) ist davon betroffen und würde heute halb gefahren und ganz gemeldet** |
12
+
13
+ ## 1. Anlass
14
+
15
+ Beim Lesen von Prüfung 37 für den Migrationslauf am Piloten
16
+ (`tests/protocols/2026-09-14-migrationslauf-pilot.md`) ist aufgefallen: Der Kopfkommentar von
17
+ `validate-framework.py` führt die Prüfungen **1 bis 38**. **Prüfung 39 ist mit 0.41.0
18
+ entstanden und steht dort nicht.**
19
+
20
+ **Gegengeprüft** (`tests/protocols/2026-09-14-gegenpruefung-pruefregister.md`, elf Messungen,
21
+ sämtlich abzählend). **Der Befund bestätigt sich – und die Zählung war wieder zu klein.**
22
+
23
+ ### 1.1 Es sind fünf, nicht eine
24
+
25
+ | # | Träger | sagt | ist | falsch seit | Releases |
26
+ |---|---|---|---|---|---|
27
+ | **A1** | `validate-framework.py`, Register im Kopfkommentar | Prüfungen **1 bis 38** | 1 bis **39** | 0.41.0 | **1** |
28
+ | **A2** | `validate-framework.py`, Satz zum Wirkungsnachweis | „für die Prüfungen **18 bis 30**" | **6 und 18 bis 39** | 0.33.0 | **9** |
29
+ | **A3** | `probe-pruefungen.py`, Kopfkommentar | eine Release-Chronik, die mit **0.29.0** endet | **6 und 18 bis 39** | 0.30.0 | **12** |
30
+ | **A4** | `TEST_CATALOG.md`, `FW-KO-01` Prüfmittel | „für die Prüfungen **6, 18 bis 31**" | **6 und 18 bis 39** | 0.34.0 | **8** |
31
+ | **A5** | `TEST_CATALOG.md`, `FW-KO-05` Prüfmittel | „Die **zwölf** Grenzfälle einzeln … prüfen" | **20** | 0.33.0 | **9** |
32
+
33
+ **Keine der fünf ist falsch geschrieben worden.** Alle fünf waren bei ihrer Einführung richtig
34
+ und sind stehen geblieben, während ihr Gegenstand weiterwuchs. In **zehn von zwölf** Releases
35
+ hat sich mindestens eine der drei Zahlen bewegt.
36
+
37
+ ### 1.2 Warum das kein Schönheitsfehler ist
38
+
39
+ **D-23 hängt daran.** Eine Prüfung gilt erst als vorhanden, wenn eine Sonde sie meldet. Woran
40
+ liest man ab, welche Prüfung eine Sonde hat? An A2, A3 und A4 – **und alle drei sagen etwas
41
+ Falsches.** Sie untertreiben: Wer sich auf A4 verlässt, hält die Prüfungen 32 bis 39 für
42
+ unbelegt. Eine untertreibende Zusage ist in diesem Projekt der seltenere Fall; schädlich ist
43
+ sie trotzdem, weil sie Arbeit anstößt, die getan ist.
44
+
45
+ **A5 ist keine Registerzeile, sondern eine Arbeitsanweisung.** `FW-KO-05` steht auf `offen`
46
+ und sagt, was in einer Sitzung zu tun ist: „Die zwölf Grenzfälle einzeln … prüfen." **Wer ihn
47
+ heute fährt, prüft zwölf von zwanzig und meldet ihn bestanden.**
48
+
49
+ **A1 verletzt eine Entscheidung, die ein Release alt ist.** `CR-2026-062` hat den
50
+ Kopfkommentar eigens zur Ermessensfrage gemacht – **E7: „Kopfkommentar 32 bis 38"** – und das
51
+ Nachziehen beschlossen. `CR-2026-063` führt dieselbe Datei in den betroffenen Artefakten, baut
52
+ Prüfung 39 und zieht den Kopfkommentar nicht nach. **Eine Entscheidung, die nur in einem
53
+ Antrag steht, hält bis zum nächsten Antrag.**
54
+
55
+ ### 1.3 Die Entlastung, die den Zuschnitt entscheidet
56
+
57
+ `docs/ROADMAP.md` nennt ebenfalls „Zwölf Grenzfälle"; `CR-2026-052` und der Wirkungsnachweis
58
+ zu 0.32.0 tun es auch. **Alle drei sind richtig** – sie beschreiben den Stand von 0.32.0.
59
+ **Ohne diese Messung wäre beim Nachziehen aus drei richtigen Zeilen eine falsche Suche
60
+ geworden.** Die Prüfung, die hier vorgeschlagen wird, liest deshalb ausschließlich die Träger,
61
+ die ein **Register** führen, und keine Vorgeschichte.
62
+
63
+ ### 1.4 Der erste Entwurf der Prüfung ist gefallen
64
+
65
+ Der naheliegende Anker – die Kopfkommentare der Prüfungen – trägt gemessen **drei** Formen
66
+ (`# Pruefung N:`, `# N:`, `# Pruefungen N bis M`), und eine vierte sieht aus wie ein Kopf und
67
+ ist keiner: `# Pruefung 37 und dieselbe Ehrlichkeit: …` im Block von Prüfung 39. **Der erste
68
+ Zähler hat sie für einen Kopf gehalten.** Aufgefallen ist es nur, weil der Verlauf über die
69
+ Releases bei 0.39.0 eine höchste Prüfung 36 meldete, während die Sonden schon bis 37 reichten
70
+ – **eine Zahl, die nicht zur Erwartung passte.**
71
+
72
+ ## 2. Was die Behebung sein muss – und was sie nicht sein kann
73
+
74
+ **Nicht sein kann sie: die Einträge erzeugen.** Sie tragen Prosa – was die Prüfung tut, welche
75
+ Entscheidungen sie trägt, wo ihre Grenze liegt. Das ist der Wert des Registers und nicht
76
+ ausrechenbar. **Ausrechenbar ist allein die Vollständigkeit.**
77
+
78
+ **Sein muss sie: eine Prüfung, die den Bestand abzählt und gegen die Register hält.** Dieselbe
79
+ Bauform, die das Projekt für die Grenzfalltabelle (Prüfung 30), die Durchsetzungstiefe
80
+ (Prüfung 31) und die Berechtigungskörbe (Prüfung 37) schon gewählt hat. Der Leitsatz steht
81
+ seit 0.33.0 im Bestand: **Wo die Grenze eines Begriffs eindeutig ist, gehört die Zahl
82
+ ausgerechnet, nicht gepflegt.** Die Menge der Prüfungen ist eindeutig.
83
+
84
+ ## 3. Vorgeschlagene Änderung
85
+
86
+ 1. **Die fünf Aussagen werden nachgezogen** – A1 bis A5, in der Schreibweise, die Prüfung 40
87
+ ausrechnet.
88
+ 2. **Prüfung 40 (neu)** in `validate-framework.py`, vier Gegenstände:
89
+ 1. **Verlorener Anker.** Die vier Ankertexte sind auffindbar: die Registerüberschrift und
90
+ der Satz zum Wirkungsnachweis in `validate-framework.py`, der Kopfsatz von
91
+ `probe-pruefungen.py`, die Zeilen `FW-KO-01` und `FW-KO-05` in `TEST_CATALOG.md`. Fehlt
92
+ einer, meldet die Prüfung sein Fehlen selbst (seit 0.32.0 Pflicht).
93
+ 2. **Das Register ist lückenlos und vollständig.** Keine Lücke von 1 bis zur höchsten
94
+ geführten Nummer; und die höchste geführte Nummer ist die höchste, die in den beiden
95
+ Prüfskripten als `Prüfung N` oder `Prüfungen N bis M` genannt wird.
96
+ 3. **Die Sondenmenge wird an drei Stellen gleich genannt** – im Satz des Validators, im
97
+ Kopfsatz des Sondenskripts und in der Prüfmittelspalte von `FW-KO-01` – in der
98
+ kanonischen Schreibweise, die die Prüfung aus `probe-pruefungen.py` ausrechnet.
99
+ 4. **Die Grenzfallanzahl in `FW-KO-05`** ist die gezählte. Prüfung 30 rechnet sie innerhalb
100
+ von `EDGE_CASES.md` nach; außerhalb nennt sie nur `FW-KO-05`, und dort als
101
+ Arbeitsanweisung.
102
+ 3. **Sechs Sonden und zwei Gegenproben** zu Prüfung 40. Die zweite Gegenprobe ist die
103
+ wichtigere: Ein Querverweis auf eine kleinere Prüfungsnummer im Fließtext eines
104
+ Kommentars darf **nicht** als fehlender Registereintrag gemeldet werden – das ist genau
105
+ der Fall, an dem der erste Entwurf gefallen ist.
106
+ 4. **Der Kopfsatz von `probe-pruefungen.py` wird ersetzt**, nicht ergänzt: Er ist als
107
+ Release-Chronik gebaut und wird deshalb bei jedem Release falsch.
108
+
109
+ ## 4. Auswirkungen
110
+
111
+ | Bereich | Auswirkung |
112
+ |---|---|
113
+ | Validatorlauf | **Fünf Fehler mehr im Vorstand** – eine je Abweichung A1 bis A5 –, null nach dem Nachziehen. Die Prüfung hängt an keinem Manifestfeld und läuft deshalb in **jeder** Installation und in jedem Pack – anders als Prüfung 33 (Befund B02) |
114
+ | Erzeugte Artefakte | **keine.** Prüfung 40 liest ausschließlich Dateien unter `<CORE_DIR>/`; eine Installation ändert sich nicht |
115
+ | Bestehende Installationen | **keine Migrationshinweise.** Wer `leitwerk-core/` ersetzt, bekommt die Prüfung mit; sie kann in einer Installation nur anschlagen, wenn dort am Kern gearbeitet wurde – und dann ist die Meldung richtig |
116
+ | Prosa | **Drei Stellen sind künftig in der Schreibweise gebunden** (die kanonische Sondenspanne), eine trägt statt eines Zahlworts eine Ziffer |
117
+ | `devin-desktop` | unverändert betroffen wie `claude-code`; die Prüfung ist packunabhängig |
118
+
119
+ ## 5. Vorlage zur Entscheidung
120
+
121
+ | Nr. | Frage | Vorschlag | Preis |
122
+ |---|---|---|---|
123
+ | **E1** | Wird das Register gepflegt und bewacht – oder aus dem Code **erzeugt**? | **Gepflegt und bewacht.** Die Einträge tragen Prosa, die kein Generator schreibt; ausrechenbar ist nur die Vollständigkeit. Bauform von `CR-2026-063` E3: geschrieben, nicht erzeugt, und von einer Prüfung gehalten | **Pflege bleibt Pflege.** Die Prüfung fängt das Vergessen, nicht den falschen Satz: Ein Eintrag, der etwas anderes beschreibt als seine Prüfung tut, läuft durch. **Die Gegenposition ist vertretbar** – ein erzeugtes Register wäre nie falsch, es wäre nur ärmer |
124
+ | **E2** | Woran erkennt die Prüfung, wie viele Prüfungen es gibt? | **An der höchsten Nummer, die in den beiden Prüfskripten als `Prüfung N` genannt wird, plus Lückenlosigkeit des Registers.** **Verworfen: die Kopfkommentare als Anker** – gemessen tragen sie drei Formen, und eine Querverweiszeile sieht aus wie ein Kopf. Der erste Entwurf ist genau daran gefallen | **Sie zählt Nennungen, nicht Prüfungen.** Wer eine Prüfung baut und ihre Nummer nirgends schreibt, wird nicht gefangen – dieselbe Ehrlichkeit wie Gegenstand 2 von Prüfung 38. **Und sie ist an eine Nummernfolge gebunden**: Prüfungen ohne Nummer gäbe es nicht mehr |
125
+ | **E3** | Wird die Sondenmenge in einer **festen Schreibweise** verlangt? | **Ja, kanonisch gerendert und wörtlich verglichen** („6 und 18 bis 39"). Die Fehlermeldung nennt die richtige Zeichenkette und ist damit selbstheilend | **Drei Stellen Prosa sind gebunden.** Bauform von D-82 mit umgekehrtem Vorzeichen: dort war der wörtliche Vergleich ein **Messergebnis**, hier ist er eine **Entscheidung** – und eine Entscheidung gegen die Formulierungsfreiheit an drei Sätzen |
126
+ | **E4** | Gehört `TEST_CATALOG.md` in eine Prüfung des Validators – ein Testblatt ist kein Laufzeitartefakt? | **Ja.** `FW-KO-01` ist das **Abnahmekriterium** des Releases; was seine Prüfmittelspalte nennt, ist eine Zusage über den Umfang des Nachweises. Eine falsche Zusage dort ist schwerer als eine im Kommentar | **Der Validator liest damit ein Dokument des Prüfverfahrens.** Sein Gegenstand bleibt die **Zahl**, nicht das Verfahren – und das gehört in den Kopfkommentar, sonst wächst die Prüfung beim nächsten Mal in die Bewertung hinein |
127
+ | **E5** | Und die Grenzfallanzahl in `FW-KO-05`? | **Ja, als Ziffer.** Ein Zahlwort ließe sich nur über eine Tabelle deutscher Zahlwörter nachrechnen – **ein zweites Register neben dem ersten**, und genau der Befundtyp, den dieser Antrag behebt | **Die Zelle trägt künftig `20` statt „zwölf".** Und die Prüfung liest ausschließlich `TEST_CATALOG.md`: Die Nennungen in Roadmap, `CR-2026-052` und Protokoll sind **Vorgeschichte und richtig** – wer sie mitzöge, machte aus drei richtigen Zeilen drei falsche |
128
+ | **E6** | Bleibt die Release-Chronik im Kopfsatz von `probe-pruefungen.py` erhalten? | **Nein, ersetzt.** Der Satz ist als Chronik gebaut und wird deshalb bei **jedem** Release falsch. Was bleibt, ist die aktuelle Menge und der D-23-Grund | **Eine Herkunftsangabe geht verloren** – welches Release welche Sonde gebracht hat. Sie steht im Änderungsverlauf, und dort gehört sie hin |
129
+ | **E7** | Eigenes Release oder Anhang an das nächste? | **Ein eigenes Release, `0.42.0`.** Der Gegenstand ist geschlossen, und die Prüfung **fängt heute etwas** – erwartet fünf Fundstellen im Vorstand, eine je Abweichung | **Das siebzehnte Release in drei Tagen.** Und es ist das erste seit 0.34.0, dessen Gegenbeweis ein **Abzählen** ist und keine Konstruktion |
130
+
131
+ ## 6. Entscheidung
132
+
133
+ | Feld | Inhalt |
134
+ |---|---|
135
+ | Entscheidung | **Angenommen, alle sieben Fragen wie vorgelegt.** E1 gepflegt und bewacht, nicht erzeugt; E2 die höchste genannte Nummer plus Lückenlosigkeit, nicht die Kommentarform; E3 kanonische Schreibweise, wörtlich verglichen; E4 `TEST_CATALOG.md` gehört dazu, Gegenstand ist die Zahl; E5 die Grenzfallanzahl als Ziffer, und nur in `TEST_CATALOG.md`; E6 der Kopfsatz des Sondenskripts wird ersetzt; E7 eigenes Release `0.42.0` |
136
+ | Datum | 2026-09-14 |
137
+ | Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
138
+ | Decision-Log-Einträge | D-85 (das Register der Prüfungen wird nachgezählt, nicht gepflegt – Bestand, Register und Sondenmenge decken sich an allen drei Trägern), D-86 (eine Zahl über den Prüfapparat steht außerhalb ihrer Quelle nur dort, wo sie nachgerechnet wird – und eine Nennung in der Vorgeschichte ist kein Register) |
139
+ | Auflagen | **Der Gegenbeweis ist ein Abzählen, kein Konstrukt** – Prüfung 40 muss gegen 0.41.0 genau die fünf Fundstellen melden, die dieser Antrag nennt, und die Zahl gehört ins Protokoll. **Die Entlastung gehört ebenfalls hinein:** Die drei richtigen Nennungen in Roadmap, `CR-2026-052` und Protokoll bleiben unangetastet, und die Prüfung darf sie nicht melden. **Und die Grenze wird benannt:** Die Prüfung belegt Vollständigkeit, nicht Richtigkeit der Einträge |
140
+ | Ziel-Release | `0.42.0` |
141
+ | Umsetzung | umgesetzt mit `0.42.0` |