@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,63 @@
1
+ # Änderungsantrag `CR-2026-002`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Client Packs: Abbildungsschicht für KI-Clients mit Fähigkeitsmatrix |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-10 |
8
+ | Betroffene Artefakte | neu: `leitwerk-core/clients/`; geändert: `leitwerk-core/docs/PLACEHOLDER_REGISTRY.md`, `leitwerk-core/OWNERS.md`, `README.md`, `leitwerk-core/CHANGELOG.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | Core (Struktur) |
10
+ | Art | neu |
11
+ | Dringlichkeit | regulär (Review-Zyklus) |
12
+
13
+ ## 1. Anlass und Problem
14
+
15
+ Das Framework ist an einen einzigen KI-Client gebunden, obwohl seine Substanz clientneutral ist. D-02 trennt bereits die kanonische, werkzeugneutrale Langform in `leitwerk-core/framework/` von der Laufzeitform in der Projektwurzel – die Naht für eine Ablösung existiert also, ist aber nirgends benannt. `root-template/` ist faktisch der Adapter für einen Client, ohne als solcher deklariert zu sein.
16
+
17
+ Der schwerwiegendere Punkt betrifft nicht die Pfade, sondern die **Durchsetzungstiefe**. Zusagen wie „Secret-Dateien werden nicht gelesen" sind beim heutigen Client Verweigerungsregeln, die die Engine erzwingt. Bei einem Client ohne pfadbasierte Berechtigungen wäre dieselbe Zusage nur noch ein Satz im Kontext, dem ein Modell folgen kann oder auch nicht. Ohne eine Stelle, an der dieser Unterschied ausgewiesen wird, würde eine Portierung falsche Sicherheit erzeugen – und zwar im Datenschutz- und Sicherheitskern, also dort, wo der Schaden am größten ist.
18
+
19
+ Zeitlich ist der Eingriff jetzt am günstigsten: Die Strukturänderung ist ein Breaking Change und in einem 0.x-Stand nach Semantic Versioning kostenlos. Nach 1.0.0 kostet sie ein 2.0.0 samt Migrationspaket für jedes aufnehmende Projekt. Derzeit existiert genau ein aufnehmendes Repository (das Übungsrepository).
20
+
21
+ ## 2. Vorgeschlagene Änderung
22
+
23
+ Einführung von **Client Packs** unter `leitwerk-core/clients/`:
24
+
25
+ 1. `README.md` – Zweck, Abgrenzung, Regeln der Fähigkeitsmatrix, Erstellungsanleitung.
26
+ 2. `_template/CLIENT_PACK.md` – Vorlage mit Pfadabbildung und einer Fähigkeitsmatrix aus 26 Zusagen in sieben Gruppen (R Regelladung, S Skills, B Berechtigungen, H Hooks, A Agentenprofile, M Modi, X externe Anbindung).
27
+ 3. `devin-desktop/CLIENT_PACK.md` – der heutige Client als erstes Pack, ausgefüllt aus dem Ist-Zustand.
28
+
29
+ **Kern der Vorlage** ist die dreiwertige Einstufung je Zusage: `[TECHNISCH]` (Engine erzwingt), `[TEXTUELL]` (nur Anweisung), `[NICHT ABBILDBAR]` (kein Mechanismus). Sechs Zusagen sind als **Kernzusagen** markiert; sie entsprechen `_core_rules_integrity` in der Berechtigungsdatei. Weicht eine davon von `[TECHNISCH]` ab, ist sie einzeln zu begründen, im Overlay als Ausnahme zu führen und durch `<SECURITY_CONTACT>` freizugeben.
30
+
31
+ Neu registrierte Platzhalter: `<CLIENT_PACK_NAME>`, `<CLIENT_PACK_CODE>` sowie der clientneutrale Marker `<VERIFY AGAINST CURRENT CLIENT DOCUMENTATION>`.
32
+
33
+ **Nicht Bestandteil dieses Antrags** (Folgearbeit für Release 0.5.0): Verschiebung von `root-template/` unter das jeweilige Pack, Schalter `--client` in `install.py`, Umbenennung der devin-spezifischen Verzeichnis- und Markernamen, ein zweites Client Pack.
34
+
35
+ ## 3. Prüffragen (durch Owner auszufüllen)
36
+
37
+ - [x] Richtige Ebene nach Entscheidungsbaum 6? — Ja. Die Schicht ist Struktur des Kerns; sie enthält keine Projektwerte.
38
+ - [x] Verschärfungsprinzip eingehalten? — **Ja, und das ist hier die entscheidende Frage.** Ein Client Pack führt keine Verhaltensregel ein, lockert keine bestehende und steht in keiner Konfliktbeziehung zu Core, Overlay oder Packs. Die achtstufige Prioritätshierarchie (D-06) bleibt unberührt; ein Client Pack ist bewusst **keine** Regelebene, sondern eine Abbildungsschicht. Bei Widerspruch zur Langform gilt die Langform. Das ist in `clients/README.md` Abschnitt 2 normativ festgehalten.
39
+ - [x] Widerspruchsfreiheit geprüft? — Gelesen: `PRIORITY_HIERARCHY.md`, `09-risk-model.md` (V1–V12), `08-skill-conventions.md`, `role-packs/README.md`, `tech-packs/README.md`, `.devin/README.md`, `.devin/rules/README.md`, `.devin/config.json`. Die Delegationsverbote V1–V12 sind ausdrücklich von der Matrix ausgenommen: Sie sind organisatorischer Natur und bei jedem Client `[TEXTUELL]`.
40
+ - [x] Laufzeitfassungen betroffen? — Nein. `AGENTS.md`, `.devin/rules/*` und `.devin/config.json` bleiben unverändert; das Devin-Pack beschreibt sie nur.
41
+ - [x] Belegstatus korrekt? — Ja, und der Befund ist unbequem: 13 der 26 Zeilen des Devin-Packs tragen einen VERIFY-Marker, keine einzige Einstufung ist gegen eine Installation geprüft. Das Pack weist sich deshalb im Kopf ausdrücklich als **unbelegt** aus.
42
+ - [x] Test- und Validierungsbedarf? — `validate-framework.py` ohne Fehler und Warnungen. Ein Testfall für die Vollständigkeit einer Fähigkeitsmatrix (jede Zeile eingestuft, jede Kernabweichung begründet) ist als Folgearbeit vorzusehen.
43
+ - [x] Auswirkungen auf Overlays und laufende Onboardings? — Keine. Rein additive Änderung.
44
+ - [x] Dokumentation? — CHANGELOG, Platzhalterregister, OWNERS, Verzeichnisbaum in `README.md`.
45
+
46
+ ## 4. Entscheidung
47
+
48
+ | Feld | Inhalt |
49
+ |---|---|
50
+ | Entscheidung | angenommen |
51
+ | Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
52
+ | Begründung | Die Schicht macht eine bereits vorhandene Naht (D-02) explizit und ist rein additiv. Ihr eigentlicher Wert liegt in der Fähigkeitsmatrix: Sie zwingt jede Portierung dazu, offenzulegen, welche Zusage der Zielclient technisch erzwingt und welche nur noch Prosa ist. Ohne diesen Zwang wäre Clientneutralität ein Sicherheitsrisiko statt einer Verbesserung. Der Zeitpunkt ist der günstigste mögliche: ein 0.x-Stand mit einem einzigen aufnehmenden Repository. |
53
+ | Ziel-Release | 0.5.0 |
54
+ | Decision-Log-Eintrag | D-12 |
55
+
56
+ ## 5. Umsetzung (nach Annahme)
57
+
58
+ - [x] `clients/README.md`, `_template/CLIENT_PACK.md`, `devin-desktop/CLIENT_PACK.md` angelegt
59
+ - [x] Platzhalter registriert; `OWNERS.md` und Verzeichnisbaum ergänzt
60
+ - [x] Validator ohne Fehler und Warnungen
61
+ - [x] CHANGELOG und Decision Log ergänzt
62
+ - [ ] Folgearbeit 0.5.0: `root-template/` je Pack, `install.py --client`, Umbenennung, zweites Client Pack
63
+ - [ ] Kommunikation an Projekte — entfällt (nur das Übungsrepository hat aufgenommen)
@@ -0,0 +1,70 @@
1
+ # Änderungsantrag `CR-2026-003`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Wurzelartefakte je Client Pack; Schalter `--client` in `install.py` |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-10 |
8
+ | Betroffene Artefakte | verschoben: `leitwerk-core/root-template/` → `leitwerk-core/clients/devin-desktop/root-template/`; verschoben: `leitwerk-core/framework/client-packs/` → `leitwerk-core/clients/`; geändert: `leitwerk-core/install.py`, `README.md`, `leitwerk-core/docs/ADOPTION_GUIDE.md`, `leitwerk-core/OWNERS.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | Core (Struktur) |
10
+ | Art | Änderung |
11
+ | Dringlichkeit | regulär (Review-Zyklus) |
12
+
13
+ ## 1. Anlass und Problem
14
+
15
+ `CR-2026-002` hat die Client Packs als Abbildungsschicht eingeführt, die Wurzelartefakte aber dort belassen, wo sie lagen: in `leitwerk-core/root-template/`. Damit blieb die Schicht Dokumentation ohne Wirkung – `install.py` kannte weiterhin genau eine, fest verdrahtete Vorlage. Ein zweites Client Pack hätte seine Artefakte nirgends unterbringen können.
16
+
17
+ ## 2. Vorgeschlagene Änderung
18
+
19
+ 1. **`root-template/` wandert unter das Client Pack**, dem es gehört: `leitwerk-core/clients/devin-desktop/root-template/`. Ein Client Pack besteht damit aus `CLIENT_PACK.md` (was der Client durchsetzt) und `root-template/` (was installiert wird).
20
+
21
+ 2. **`install.py` erhält `--client`** (Standard `devin-desktop`) und `--list-clients`. Die Vorlage wird nicht mehr aus einer Konstanten abgeleitet, sondern aus dem gewählten Pack; `core_relpaths`, `seed_relpaths` und `run` nehmen sie als Parameter entgegen. Ein unbekannter Client bricht mit Exit-Code 1 ab und nennt die verfügbaren. Als installierbar gilt nur ein Pack mit vorhandenem `root-template/`.
22
+
23
+ 3. **Die Schicht wandert von `framework/client-packs/` nach `clients/`.** Zwei Gründe, siehe Abschnitt 2a.
24
+
25
+ ### 2a. Warum `clients/` und nicht `framework/client-packs/`
26
+
27
+ **Inhaltlich:** Unter `framework/` liegen die Regelebenen – `core/` (Ebene 3), `tech-packs/` (5), `role-packs/` (6), `org-policies/` (2). `CR-2026-002` hat aber normativ festgehalten, dass ein Client Pack **keine** Regelebene ist. Es dort einzuordnen war eine Analogie zu den anderen Packs und widersprach der eigenen Festlegung.
28
+
29
+ **Technisch, und hier lag ein realer Fehlschlag:** Die erste Testinstallation nach der Verschiebung brach unter Windows mit `FileNotFoundError` ab. Ursache war nicht die Logik, sondern die Pfadlänge. `MAX_PATH` beträgt 260 Zeichen; der längste relative Pfad des Frameworks wuchs durch die Verschiebung von 89 auf 126 Zeichen:
30
+
31
+ | Ablage | Längster relativer Pfad |
32
+ |---|---|
33
+ | vorher (`root-template/`) | 89 Zeichen |
34
+ | `framework/client-packs/<client>/root-template/` | 126 Zeichen |
35
+ | `clients/<client>/root-template/` | 111 Zeichen |
36
+
37
+ Bei einem Projektbasispfad von 135 Zeichen ergab die mittlere Variante 261 Zeichen und damit den Abbruch. Die Kürzung um 15 Zeichen löst den konkreten Fall; sie beseitigt das Problem nicht grundsätzlich. Ein Client Pack bleibt eine Verschachtelungsebene mehr als zuvor.
38
+
39
+ ## 3. Prüffragen (durch Owner auszufüllen)
40
+
41
+ - [x] Richtige Ebene nach Entscheidungsbaum 6? — Ja, Struktur des Kerns.
42
+ - [x] Verschärfungsprinzip eingehalten? — Ja. Kein Regeltext geändert; die installierten Artefakte sind byteweise dieselben.
43
+ - [x] Widerspruchsfreiheit geprüft? — `clients/README.md` Abschnitt 2 hält fest, dass ein Client Pack keine Regelebene ist; die Ablage außerhalb von `framework/` zieht das nun nach.
44
+ - [x] Laufzeitfassungen betroffen? — Inhaltlich nein, nur ihr Quellort. Nachgewiesen durch eine Erstinstallation mit unveränderter Dateizahl (80).
45
+ - [x] Belegstatus korrekt? — Keine produktbezogene Aussage betroffen.
46
+ - [x] Test- und Validierungsbedarf? — Siehe Abschnitt 5. `FW-KO-04` hat die beiden gebrochenen Querverweise unmittelbar nach der Verschiebung gemeldet, ohne die historischen Nennungen in `CHANGELOG.md` fälschlich mitzumelden.
47
+ - [x] Auswirkungen auf Overlays und laufende Onboardings? — Für aufnehmende Projekte keine: `install.py` wird ohne Schalter aufgerufen und verhält sich unverändert. Betroffen ist nur, wer den Kern selbst bearbeitet.
48
+ - [x] Dokumentation? — `README.md` (Verzeichnisbaum, Abschnitt „Arbeiten an diesem Repository"), `ADOPTION_GUIDE.md` (Abschnitt „Werkzeugwechsel" von Zukunftsplan auf Ist-Zustand umgeschrieben), CHANGELOG, Decision Log.
49
+
50
+ ## 4. Entscheidung
51
+
52
+ | Feld | Inhalt |
53
+ |---|---|
54
+ | Entscheidung | angenommen |
55
+ | Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
56
+ | Begründung | Ohne diesen Schritt bliebe `CR-2026-002` folgenlos. Die Ablage unter `clients/` ist zugleich inhaltlich konsistenter und technisch robuster als die zunächst gewählte unter `framework/`. |
57
+ | Ziel-Release | 0.5.0 |
58
+ | Decision-Log-Eintrag | D-13 |
59
+
60
+ ## 5. Umsetzung (nach Annahme)
61
+
62
+ - [x] Verschiebung beider Verzeichnisse; alle Verweise nachgezogen
63
+ - [x] `install.py`: `--client`, `--list-clients`, parametrisierte Vorlage
64
+ - [x] Validator ohne Fehler und Warnungen
65
+ - [x] Erstinstallation in leerem Verzeichnis: **80 Dateien**, kein Pack aktiv, `.devin/skills/` nur `fw-*` – identisch zum Stand vor der Verschiebung
66
+ - [x] `--check` gegen die frische Installation: keine Abweichung
67
+ - [x] Drift-Erkennung: manipulierte Core-Datei → Exit 1 mit Nennung des Client-Pack-Pfades; `--update` stellt her → Exit 0
68
+ - [x] Unbekannter Client: Exit 1, verfügbare Packs genannt
69
+ - [x] CHANGELOG und Decision Log ergänzt
70
+ - [ ] Folgearbeit: zweites Client Pack; Umbenennung der devin-spezifischen Verzeichnis- und Markernamen
@@ -0,0 +1,82 @@
1
+ # Änderungsantrag `CR-2026-004`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Zweites Client Pack `claude-code`; Manifeste; clientneutraler Validator |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-10 |
8
+ | Betroffene Artefakte | neu: `leitwerk-core/clients/claude-code/`, `leitwerk-core/clients/*/manifest.json`; geändert: `leitwerk-core/install.py`, `leitwerk-core/tests/scripts/validate-framework.py`, `leitwerk-core/tests/scripts/hook-check-secrets.py`, `leitwerk-core/clients/README.md`, `leitwerk-core/OWNERS.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | Core (Struktur) |
10
+ | Art | neu |
11
+ | Dringlichkeit | regulär (Review-Zyklus) |
12
+
13
+ ## 1. Anlass und Problem
14
+
15
+ `CR-2026-002` und `CR-2026-003` haben die Client Packs eingeführt und installierbar gemacht – aber mit genau einem Pack. Ob die Abstraktion trägt oder nur eine Umbenennung war, konnte damit niemand feststellen. Ein zweites Pack ist der einzige belastbare Nachweis.
16
+
17
+ `claude-code` eignet sich als Gegenprobe besonders, weil der Client in einem zentralen Punkt anders gebaut ist: Er kennt **keine Regeldateien mit Ladetriggern**. Damit prüft das Pack nicht nur die Pfadabbildung, sondern die Annahme, dass die Framework-Regeln überhaupt von diesem Mechanismus lösbar sind.
18
+
19
+ ## 2. Vorgeschlagene Änderung
20
+
21
+ 1. **Client Pack `claude-code`** mit `CLIENT_PACK.md`, `manifest.json` und vollständigem `root-template/` (79 Dateien).
22
+
23
+ 2. **Manifeste für beide Packs.** `install.py` hatte `CORE_PATHS`, `SEED_PATHS` und die Projektpfad-Hinweise fest verdrahtet – auf `.devin/`. Diese Listen stehen jetzt je Pack in `manifest.json`. Ohne Manifest gilt ein Pack als nicht installierbar.
24
+
25
+ 3. **Clientneutraler Validator.** `check_required`, `check_config`, `check_rules` und `skill_dirs` liefen fest gegen `.devin/`. Sie ermitteln die Laufzeitschicht jetzt über `detect_client()` aus dem Manifest des Packs, dessen `runtime_dir` im Zielverzeichnis liegt. Sind mehrere Laufzeitschichten vorhanden, ist das ein Fehler – ein Projekt nutzt genau ein Pack.
26
+
27
+ 4. **`check_rules` unterscheidet zwei Bauarten.** Mit Ladetriggern wird das Frontmatter geprüft. Ohne Ladetrigger wird geprüft, dass jede Kernregel in der Wurzel-Anweisung **eingebunden** ist – dort ist eine nicht eingebundene Regeldatei stillschweigend wirkungslos, ein Fehlerfall, den es bei Clients mit Ladetriggern nicht gibt. Zusätzlich wird der ständig geladene Kontext gemessen und ab 40.000 Zeichen gewarnt.
28
+
29
+ 5. **Der Schutz-Hook wurde clientneutral.** `hook-check-secrets.py` schützte `AGENTS.md` und `.devin/`; es schützt jetzt beide Namensformen. Das Skript war ohnehin schema-agnostisch und funktioniert damit bei beiden Clients unverändert.
30
+
31
+ 6. **Der Querverweis-Check unterscheidet drei Fälle** (siehe Abschnitt 2a).
32
+
33
+ ### 2a. Der wichtigste Befund: 63 Client-Bindungen im „werkzeugneutralen" Kern
34
+
35
+ Der Validator gegen die erste `claude-code`-Installation meldete **104 Fehler**. Keiner davon war ein Programmfehler. Die Ursache: D-02 nennt `leitwerk-core/framework/` „kanonisch und werkzeugneutral" – tatsächlich nennt der Kern an vielen Stellen `AGENTS.md` und `.devin/`, also die Laufzeitpfade genau eines Clients.
36
+
37
+ Nach Abzug der berechtigten Fälle bleiben **63 echte Client-Bindungen**, verteilt über `framework/core/`, `governance/`, `docs/`, `checklists/`, `onboarding/`, `prompts/` und `tests/`. Häufigste Nennungen: `AGENTS.md` (37), `.devin/config.json` (17), `.devin/` (16).
38
+
39
+ Der Querverweis-Check unterscheidet deshalb jetzt:
40
+
41
+ | Fall | Behandlung |
42
+ |---|---|
43
+ | Pfad existiert nicht und gehört zu keinem Client Pack | **Fehler** – tote Referenz |
44
+ | Pfad gehört zur Laufzeitschicht eines nicht installierten Client Packs | **Warnung** mit Anzahl und Fundstellen – Client-Bindung im Kern |
45
+ | Datei liegt im `root-template/` eines Packs, Pfad dort auflösbar | kein Befund – das Pack beschreibt seine eigene Laufzeitschicht |
46
+ | Datei ist eine `CLIENT_PACK.md` oder liegt unter `clients/_template/` | kein Befund – sie beschreibt fremde Pfade |
47
+
48
+ Damit ist die Neutralisierung des Kerns keine Schätzung mehr, sondern eine messbare Restgröße. Sie ist **nicht** Bestandteil dieses Antrags.
49
+
50
+ ## 3. Prüffragen (durch Owner auszufüllen)
51
+
52
+ - [x] Richtige Ebene nach Entscheidungsbaum 6? — Ja, Struktur des Kerns.
53
+ - [x] Verschärfungsprinzip eingehalten? — Ja. Die Regeltexte sind inhaltlich identisch übernommen. Drei Abweichungen des neuen Packs sind sämtlich Verschärfungen: Regeln ohne Ladetrigger sind immer statt bedingt geladen; Befehlsverbote wirken präfixbasiert und damit breiter; der Schutz-Hook deckt jetzt beide Namensformen ab.
54
+ - [x] Widerspruchsfreiheit geprüft? — `clients/README.md` Abschnitt 2 (keine Regelebene) gilt unverändert. Die Fähigkeitsmatrix des neuen Packs weist vier Zusagen als `[NICHT ABBILDBAR]` aus; alle vier betreffen Least Context und Ergonomie, keine Schutzzusage.
55
+ - [x] Laufzeitfassungen betroffen? — Für `devin-desktop` nicht: `install.py --check` unverändert, Erstinstallation weiterhin 80 Dateien.
56
+ - [x] Belegstatus korrekt? — 9 der 26 Matrixzeilen tragen einen VERIFY-Marker. Das Pack weist sich im Kopf als unbelegt aus. Eine Beobachtung während der Erstellung (Abschnitt 6 des Packs) ist ausdrücklich als solche gekennzeichnet und ersetzt AP2 nicht.
57
+ - [x] Test- und Validierungsbedarf? — Siehe Abschnitt 5. Offen: ein Testfall, der die Vollständigkeit einer Fähigkeitsmatrix prüft.
58
+ - [x] Auswirkungen auf Overlays und laufende Onboardings? — Für bestehende Projekte keine. Das Übungsrepository wurde mit dem neuen Kern gegengeprüft (simulierte Übernahme): fehlerfrei, aktivierte Packs weiterhin erkannt.
59
+ - [x] Dokumentation? — `clients/README.md` (Pack-Liste mit Durchsetzungstiefe, Manifest-Pflicht, Erstellungsschritte), `OWNERS.md`, CHANGELOG, Decision Log.
60
+
61
+ ## 4. Entscheidung
62
+
63
+ | Feld | Inhalt |
64
+ |---|---|
65
+ | Entscheidung | angenommen |
66
+ | Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
67
+ | Begründung | Das zweite Pack belegt, dass die Abstraktion trägt: Alle sechs Kernzusagen sind auch bei einem Client mit grundlegend anderem Regelmechanismus technisch abgebildet. Zugleich hat der Versuch zwei Schwächen aufgedeckt, die ohne ihn unentdeckt geblieben wären – die harte Verdrahtung in `install.py` und im Validator sowie die 63 Client-Bindungen im angeblich werkzeugneutralen Kern. Beide sind jetzt behoben beziehungsweise messbar. |
68
+ | Ziel-Release | 0.5.0 |
69
+ | Decision-Log-Eintrag | D-14 |
70
+
71
+ ## 5. Umsetzung (nach Annahme)
72
+
73
+ - [x] Client Pack `claude-code`: `CLIENT_PACK.md`, `manifest.json`, `root-template/` (79 Dateien)
74
+ - [x] Manifeste für beide Packs; `install.py` liest sie statt fester Listen
75
+ - [x] Validator clientneutral: `detect_client`, `check_required`, `check_config`, `check_rules`, `skill_dirs`
76
+ - [x] `hook-check-secrets.py` clientneutral; Selbsttest: beide Namensformen blockieren (Exit 2), Quellcodepfad nicht (Exit 0)
77
+ - [x] Erstinstallation `--client claude-code` in leeres Verzeichnis: 79 Dateien (eine weniger als `devin-desktop`, weil Hooks in der Berechtigungsdatei aufgehen); `--check` dagegen fehlerfrei
78
+ - [x] Validator gegen beide Installationen: je 0 Fehler
79
+ - [x] Regression `devin-desktop`: Erstinstallation weiterhin 80 Dateien, `--check` fehlerfrei
80
+ - [x] Übungsrepository mit Kern 0.5.0 gegengeprüft: 0 Fehler, aktivierte Packs erkannt
81
+ - [x] CHANGELOG und Decision Log ergänzt
82
+ - [ ] Folgearbeit: Neutralisierung der 63 Client-Bindungen im Kern; gemeinsame Skill-Quelle statt Duplikat je Pack; Testfall für die Vollständigkeit einer Fähigkeitsmatrix
@@ -0,0 +1,75 @@
1
+ # Änderungsantrag `CR-2026-005`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Neutralisierung des Kerns: Begriffe statt clientspezifischer Pfade |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-10 |
8
+ | Betroffene Artefakte | neu: `leitwerk-core/docs/RUNTIME_GLOSSARY.md`; geändert: `framework/core/*`, `framework/role-packs/`, `framework/tech-packs/`, `governance/`, `checklists/`, `onboarding/`, `prompts/`, `examples/`, `decision-trees/`, `docs/`, `tests/TEST_CATALOG.md`, `OWNERS.md`, `README.md`, `tests/scripts/validate-framework.py` |
9
+ | Ebene laut Entscheidungsbaum 6 | Core (Redaktion) |
10
+ | Art | Änderung |
11
+ | Dringlichkeit | regulär (Review-Zyklus) |
12
+
13
+ ## 1. Anlass und Problem
14
+
15
+ `CR-2026-004` hat gemessen, was D-02 bislang nur behauptete: Der als „kanonisch und werkzeugneutral" bezeichnete Kern nannte an **63 Stellen** die Laufzeitpfade genau eines KI-Clients – `AGENTS.md` (37-mal), `.devin/config.json` (17-mal), `.devin/` (16-mal) und weitere.
16
+
17
+ Die Folge war nicht theoretisch. Wer das Framework mit einem anderen Client Pack installierte, las in den Core-Modulen, Checklisten und Onboarding-Texten durchgehend Pfade, die in seiner Installation nicht existieren. Ein Kern, der so formuliert ist, ist nicht neutral – er ist nur so benannt.
18
+
19
+ ## 2. Vorgeschlagene Änderung
20
+
21
+ **Ein Glossar legt die Begriffe fest** (`leitwerk-core/docs/RUNTIME_GLOSSARY.md`) und bildet sie auf die Pfade je Client Pack ab. Es ist das Gegenstück zum Platzhalterregister: dort projektspezifische Werte, hier clientspezifische Pfade.
22
+
23
+ | Begriff im Kern | `devin-desktop` | `claude-code` |
24
+ |---|---|---|
25
+ | Wurzel-Anweisungsdatei | `AGENTS.md` | `CLAUDE.md` |
26
+ | Laufzeitschicht | `.devin/` | `.claude/` |
27
+ | Berechtigungsdatei | `.devin/config.json` | `.claude/settings.json` |
28
+ | Regelablage | `.devin/rules/` | `.claude/framework/` |
29
+ | Skill-Ablage | `.devin/skills/` | `.claude/skills/` |
30
+ | Agentenprofile | `.devin/agents/` | `.claude/agents/` |
31
+ | Hook-Konfiguration | `.devin/hooks.v1.json` | in der Berechtigungsdatei |
32
+ | MCP-Konfiguration | `.devin/mcp_config.json` | `.mcp.json` |
33
+ | Nutzerlokale Überschreibung | `AGENTS.local.md`, `.devin/config.local.json` | `CLAUDE.local.md`, `.claude/settings.local.json` |
34
+
35
+ **Die Regel:** Im Kern steht der Begriff, im Client Pack der Pfad, in historischen Dokumenten bleibt beides unverändert.
36
+
37
+ **Umsetzung:** 61 der 63 Stellen redaktionell ersetzt, in sieben Durchgängen, jeweils mit anschließender Messung. Nicht ersetzt wurden zwei Stellen in Roadmap-AP2 – das Arbeitspaket validiert bewusst die Mechanismen *eines* Clients; dort steht jetzt ein Hinweis, dass es je Client Pack zu wiederholen ist.
38
+
39
+ **Nebeneffekt:** Auch die Prosa wurde vom Produktnamen gelöst, wo sie eine Eigenschaft beschreibt und keinen Beleg – „Devin passt Tests an" wurde zu „Das Werkzeug passt Tests an", „Devin-Nutzungsvermerk" zu „KI-Nutzungsvermerk".
40
+
41
+ **Decision Record D-02** wurde nicht umgeschrieben – Decision Records beschreiben eine Entscheidung zu ihrem Zeitpunkt. Er trägt jetzt einen Fortschreibungsvermerk auf D-12 bis D-14.
42
+
43
+ **Validator:** Vier Dateiklassen sind von der Fremdpfad-Warnung ausgenommen, jede mit Begründung im Code: das Glossar (dort sind die Pfade der Inhalt), Dateien im `root-template/` eines Packs (sie beschreiben ihre eigene Laufzeitschicht), `CLIENT_PACK.md` (beschreibt fremde Pfade) und historische Dokumente.
44
+
45
+ ## 3. Prüffragen (durch Owner auszufüllen)
46
+
47
+ - [x] Richtige Ebene nach Entscheidungsbaum 6? — Ja, Redaktion des Kerns.
48
+ - [x] Verschärfungsprinzip eingehalten? — Ja. **Keine Regel wurde inhaltlich geändert**, nur ihre Bezugnahme auf Artefakte. Jede Ersetzung war ein Eins-zu-eins-Austausch von Pfad gegen Begriff.
49
+ - [x] Widerspruchsfreiheit geprüft? — Das Glossar ist die einzige Stelle, an der Begriff und Pfad zusammenstehen; alle anderen Kerntexte verweisen darauf. Die Begriffe waren bereits in den Client Packs eingeführt und sind damit nicht neu erfunden.
50
+ - [x] Laufzeitfassungen betroffen? — Nein. Die installierten Artefakte sind byteweise unverändert: Erstinstallation weiterhin 80 Dateien (`devin-desktop`) beziehungsweise 79 (`claude-code`), `--check` fehlerfrei.
51
+ - [x] Belegstatus korrekt? — Unverändert. Wo ein `[DOK]` an einem Pfad hing, hängt es jetzt am Begriff; die Belegkette läuft über das Client Pack.
52
+ - [x] Test- und Validierungsbedarf? — `FW-KO-04` hat den Fortschritt in jedem Durchgang gemessen (63 → 57 → 33 → 23 → 8 → 2).
53
+ - [x] Auswirkungen auf Overlays und laufende Onboardings? — Keine funktionale. Redaktionell: Onboarding-Texte nennen jetzt Begriffe; die Zuordnung zum eigenen Client steht im Glossar. Das Übungsrepository wurde mit dem neuen Kern gegengeprüft: 0 Fehler.
54
+ - [x] Dokumentation? — Glossar neu, CHANGELOG, Decision Log.
55
+
56
+ ## 4. Entscheidung
57
+
58
+ | Feld | Inhalt |
59
+ |---|---|
60
+ | Entscheidung | angenommen |
61
+ | Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
62
+ | Begründung | Ohne diesen Schritt wäre die Clientneutralität eine Behauptung geblieben, die jeder Leser eines Core-Moduls widerlegt hätte. Die Änderung ist rein redaktionell und lässt jede Regel inhaltlich unberührt – nachgewiesen durch byteweise identische Installationen. |
63
+ | Ziel-Release | 0.5.0 |
64
+ | Decision-Log-Eintrag | D-15 |
65
+
66
+ ## 5. Umsetzung (nach Annahme)
67
+
68
+ - [x] `RUNTIME_GLOSSARY.md` mit Begriffen, Abbildungstabelle und Geltungsregel
69
+ - [x] 61 von 63 Stellen neutralisiert; die zwei verbleibenden in AP2 begründet
70
+ - [x] D-02 mit Fortschreibungsvermerk versehen, Eintrag selbst unverändert
71
+ - [x] Validator: vier begründete Ausnahmeklassen
72
+ - [x] Messung nach jedem Durchgang: 63 → 57 → 33 → 23 → 8 → 2
73
+ - [x] Regression: beide Erstinstallationen unverändert (80 / 79 Dateien), `--check` fehlerfrei, Validator gegen beide Installationen 0 Fehler, Übungsrepository mit neuem Kern 0 Fehler
74
+ - [x] CHANGELOG und Decision Log ergänzt
75
+ - [ ] Folgearbeit: gemeinsame Skill-Quelle (siehe Messung im CHANGELOG)
@@ -0,0 +1,77 @@
1
+ # Änderungsantrag `CR-2026-006`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Gemeinsame Skill-Quelle mit Rendering je Client Pack |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-10 |
8
+ | Betroffene Artefakte | neu: `leitwerk-core/framework/skills/`; entfernt: `clients/*/root-template/**/skills/`; geändert: `install.py`, `tests/scripts/validate-framework.py`, `clients/*/manifest.json`, `docs/PLACEHOLDER_REGISTRY.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | Core (Struktur) |
10
+ | Art | Änderung |
11
+ | Dringlichkeit | regulär (Review-Zyklus) |
12
+
13
+ ## 1. Anlass und Problem
14
+
15
+ Mit dem zweiten Client Pack lagen die zwölf `fw-*`-Skills doppelt im Kern – einmal je Pack, 48 Dateien jeweils. `CR-2026-004` hat das als bekannte Einschränkung festgehalten, `CR-2026-005` die Datengrundlage geliefert:
16
+
17
+ | Größe | Wert |
18
+ |---|---|
19
+ | Zeilen gesamt | 3.003 |
20
+ | Abweichende Zeilen | 215 (7,2 %) |
21
+ | davon Frontmatter | 147 |
22
+ | davon Pfadnennungen im Rumpf | 68 |
23
+
24
+ **92,8 Prozent identisch.** Ein neuer Skill hätte zweimal geschrieben, jede Korrektur zweimal nachgezogen werden müssen – mit der üblichen Folge, dass die Fassungen auseinanderlaufen, ohne dass es jemand bemerkt.
25
+
26
+ Der Ort war zudem falsch gewählt: **Ein Skill ist Framework-Inhalt – Ebene 7 der Prioritätshierarchie.** Nur seine Frontmatter-*Form* ist clientspezifisch. Dass die Skills im Client Pack lagen, war ein Erbe daraus, dass `root-template/` ursprünglich alles enthielt.
27
+
28
+ ## 2. Vorgeschlagene Änderung
29
+
30
+ **Die Skills liegen einmal** unter `leitwerk-core/framework/skills/` (48 Dateien) und werden bei der Installation in die Form des gewählten Clients gebracht.
31
+
32
+ **Quellformat ist die reichere Listenform** (`allowed-tools` als Liste, dazu `permissions` und `triggers`). Sie trägt mehr Information als die kommagetrennte Form und lässt sich verlustfrei in diese überführen – umgekehrt nicht.
33
+
34
+ **Zwei Transformationen beim Rendern:**
35
+
36
+ 1. **Frontmatter** nach `skill_frontmatter` im Manifest: `tools_format` (`list` oder `csv`), `tool_names` (Werkzeugabbildung, etwa `edit` → `Edit, Write`), `drop_fields` (Felder, die dieser Client nicht kennt – K-18).
37
+ 2. **Laufzeit-Platzhalter** nach `runtime_placeholders` im Manifest. Neun neue registrierte Platzhalter (`<RUNTIME_DIR>`, `<ROOT_INSTRUCTION_FILE>`, `<PERMISSIONS_FILE>`, `<SKILLS_DIR>`, `<RULES_DIR>`, `<AGENTS_DIR>`, `<HOOKS_FILE>`, `<MCP_FILE>`, `<ROOT_INSTRUCTION_LOCAL>`) ersetzen die 17 Pfadnennungen in den Skill-Rümpfen.
38
+
39
+ Sie unterscheiden sich von allen bisherigen Platzhaltern: **Nicht der Mensch füllt sie, sondern `install.py`.** Das ist die gerenderte Entsprechung zu den Begriffen aus D-15 – Fließtext nennt den Begriff, ein Quelltext, der gerendert wird, den Platzhalter.
40
+
41
+ **Der Validator prüft beide Enden:** die Quelle unter `framework/skills/` streng nach Skill-Standard, und die installierte Laufzeitschicht darauf, dass kein Laufzeit-Platzhalter unaufgelöst geblieben ist. Letzteres deckt ein Client Pack auf, dessen Manifest einen Platzhalter nicht belegt.
42
+
43
+ ## 3. Prüffragen (durch Owner auszufüllen)
44
+
45
+ - [x] Richtige Ebene nach Entscheidungsbaum 6? — Ja, und die Änderung korrigiert eine falsche Zuordnung: Ein Skill ist Ebene 7 (Framework), kein Bestandteil der Client-Abbildung.
46
+ - [x] Verschärfungsprinzip eingehalten? — Ja. Kein Skill-Inhalt wurde geändert. Nachgewiesen durch unveränderte Installationsumfänge und einen Vergleich der gerenderten Fassungen mit den bisherigen.
47
+ - [x] Widerspruchsfreiheit geprüft? — `framework/core/08-skill-conventions.md` nennt seit `CR-2026-005` die Skill-Ablage als Begriff; die Quelle liegt nun folgerichtig im werkzeugneutralen Kern. Das Nummern- und Präfixschema (`fw-`, `role-`, `tech-`, `prj-`) bleibt unverändert.
48
+ - [x] Laufzeitfassungen betroffen? — Nur ihr Ursprung. Installationsumfang unverändert: 80 Dateien (`devin-desktop`), 79 (`claude-code`).
49
+ - [x] Belegstatus korrekt? — Unverändert.
50
+ - [x] Test- und Validierungsbedarf? — Siehe Abschnitt 5. Neu: Prüfung auf unaufgelöste Laufzeit-Platzhalter, mit Wirksamkeitsnachweis.
51
+ - [x] Auswirkungen auf Overlays und laufende Onboardings? — Keine. Projektspezifische `prj-*`-Skills bleiben unberührt; sie liegen weiterhin allein in der Laufzeitschicht des Projekts und werden von `install.py` nie angefasst.
52
+ - [x] Dokumentation? — Platzhalterregister (neuer Abschnitt für Laufzeit-Platzhalter), CHANGELOG, Decision Log.
53
+
54
+ ## 4. Entscheidung
55
+
56
+ | Feld | Inhalt |
57
+ |---|---|
58
+ | Entscheidung | angenommen |
59
+ | Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
60
+ | Begründung | Die doppelte Pflege war die einzige Stelle, an der ein weiteres Client Pack echten Zusatzaufwand erzeugt hätte. Sie ist beseitigt, ohne dass ein Skill-Inhalt sich ändert. Die dafür gebaute Infrastruktur – Renderer und Laufzeit-Platzhalter – trägt auch die übrigen Artefakte, deren Inhalt Framework und deren Form Client ist. |
61
+ | Ziel-Release | 0.5.0 |
62
+ | Decision-Log-Eintrag | D-16 |
63
+
64
+ ## 5. Umsetzung (nach Annahme)
65
+
66
+ - [x] 48 Dateien nach `framework/skills/` verschoben; 17 Pfadnennungen durch Laufzeit-Platzhalter ersetzt (Restprüfung: 0 verbliebene Client-Pfade)
67
+ - [x] Manifeste um `runtime_placeholders` und `skill_frontmatter` erweitert
68
+ - [x] `install.py`: `resolve_placeholders`, `render_skill_frontmatter`, `framework_skill_files`, `write_rendered`, `rendered_matches`
69
+ - [x] Skill-Verzeichnisse aus beiden `root-template/` entfernt
70
+ - [x] Validator: Quelle als Skill-Ablage geprüft; neue Prüfung `check_runtime_placeholders`
71
+ - [x] Platzhalterregister um den Abschnitt „Laufzeit-Platzhalter" erweitert
72
+ - [x] Erstinstallation unverändert: 80 / 79 Dateien; `--check` gegen beide fehlerfrei
73
+ - [x] Drift-Erkennung an einem gerenderten Skill: Exit 1 mit Nennung der gemeinsamen Quelle; `--update` stellt her
74
+ - [x] Wirksamkeitsnachweis: `<HOOKS_FILE>` testweise aus einem Manifest entfernt → drei gemeldete Fehler wegen unaufgelöster Platzhalter; Manifest wiederhergestellt
75
+ - [x] Validator gegen beide Installationen und gegen das Übungsrepository mit neuem Kern: je 0 Fehler
76
+ - [x] CHANGELOG und Decision Log ergänzt
77
+ - [ ] Folgearbeit: `project-overlay/` und die beiden Pack-Vorlagen aus den Client Packs herauslösen (18 byteweise identische Dateien); Regeltexte, Wurzel-Anweisung, Agentenprofil und Berechtigungsdatei über denselben Renderer führen
@@ -0,0 +1,80 @@
1
+ # Änderungsantrag `CR-2026-007`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Geteilte Kernbestandteile: Overlay-Vorlage, Regelvorlagen, Wurzel-Anweisung, Core-Regeltexte, Agentenprofil |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-10 |
8
+ | Betroffene Artefakte | neu: `leitwerk-core/framework/runtime/`, `leitwerk-core/templates/project-overlay/`, `leitwerk-core/templates/rules/`; geändert: `install.py`, `tests/scripts/validate-framework.py`, `clients/*/manifest.json`, `docs/PLACEHOLDER_REGISTRY.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | Core (Struktur) |
10
+ | Art | Änderung |
11
+ | Dringlichkeit | regulär (Review-Zyklus) |
12
+
13
+ ## 1. Anlass und Problem
14
+
15
+ `CR-2026-006` hat die Skills auf eine gemeinsame Quelle gebracht und dabei gemessen, was sonst noch doppelt lag: **18 der 32 Dateien** eines Client Packs waren byteweise identisch mit ihrer Entsprechung im anderen Pack. Weitere sieben unterschieden sich nur in der Form, nicht im Inhalt.
16
+
17
+ Zwei Klassen waren betroffen:
18
+
19
+ **Clientneutral, nur historisch im Pack.** `project-overlay/` ist **Ebene 4 – Projekt** und hat mit dem Client nichts zu tun; die beiden Regelvorlagen sind Framework-Gut. Sie lagen nur deshalb im Pack, weil `root-template/` ursprünglich alles enthielt.
20
+
21
+ **Inhalt Framework, Form Client.** Wurzel-Anweisung, die drei Core-Regeltexte und das Agentenprofil – derselbe Fall wie bei den Skills.
22
+
23
+ ## 2. Vorgeschlagene Änderung
24
+
25
+ **Ein generischer Mechanismus für geteilte Bestandteile.** Das Manifest führt sie unter `shared_core` (wird bei `--update` überschrieben) und `shared_seed` (nur bei der Erstinstallation angelegt); ein Eintrag ist `{"src": …, "dst": …}`, der Zielpfad darf Laufzeit-Platzhalter enthalten, und ein Verzeichnis wird rekursiv abgebildet. Der Mechanismus trägt jede weitere Datei, die aus dem Kern installiert werden soll.
26
+
27
+ **Neue Ablagen:**
28
+
29
+ | Ablage | Inhalt |
30
+ |---|---|
31
+ | `templates/project-overlay/` | Saat für Ebene 4, 18 Dateien |
32
+ | `templates/rules/` | die beiden Regelvorlagen |
33
+ | `framework/runtime/` | Wurzel-Anweisung, Core-Regeltexte `00-`, `10-`, `15-`, Agentenprofil |
34
+
35
+ `framework/runtime/` ist die werkzeugneutrale Laufzeitfassung – genau das, was D-02 seit jeher meint, aber bisher nirgends lag.
36
+
37
+ **Drei neue Formtransformationen**, alle aus dem Manifest gesteuert:
38
+
39
+ | Transformation | Steuerung | Wirkung |
40
+ |---|---|---|
41
+ | Regeltext | `rule_frontmatter`: `yaml` oder `comment` | Ein Client ohne Ladetrigger bekommt statt des YAML-Frontmatters einen Kommentar, der Zweck und Ladeverhalten festhält |
42
+ | Wurzel-Anweisung | `root_instruction_imports` | An der Marke `<!-- RUNTIME_IMPORTS -->` werden die Einbindungen dieses Clients eingesetzt; ohne Einträge verschwindet die Marke rückstandsfrei |
43
+ | Agentenprofil | `agent_frontmatter` | Feldname und Werkzeugformat (`allowed-tools` als Liste gegenüber `tools` kommagetrennt) |
44
+
45
+ **Ein neuer Laufzeit-Platzhalter `<CLIENT_NAME>`.** Die Wurzel-Anweisung trug im Titel den Produktnamen – in einer Installation des anderen Packs schlicht falsch. Er wird jetzt aus dem Manifest gesetzt.
46
+
47
+ ## 3. Prüffragen (durch Owner auszufüllen)
48
+
49
+ - [x] Richtige Ebene nach Entscheidungsbaum 6? — Ja, und die Änderung korrigiert zwei Fehlzuordnungen: Das Project Overlay ist Ebene 4 und gehörte nie in ein Client Pack; die Core-Regeltexte sind Ebene 3.
50
+ - [x] Verschärfungsprinzip eingehalten? — Ja. **Nachgewiesen, nicht behauptet:** Alle fünf verschobenen Laufzeitartefakte sind nach dem Rendern byteweise identisch mit dem Stand 0.4.0 (Vergleich gegen `git HEAD`). Einzige gewollte Abweichung ist der Titel der Wurzel-Anweisung, der jetzt den Namen des tatsächlich verwendeten Clients trägt.
51
+ - [x] Widerspruchsfreiheit geprüft? — `framework/runtime/` ergänzt `framework/core/` (Langform) um die Kurzfassung; das Verhältnis beider ist in D-02 geregelt und unverändert.
52
+ - [x] Laufzeitfassungen betroffen? — Nur ihr Ursprung. Installationsumfang unverändert: 80 / 79 Dateien.
53
+ - [x] Belegstatus korrekt? — Unverändert.
54
+ - [x] Test- und Validierungsbedarf? — Siehe Abschnitt 5.
55
+ - [x] Auswirkungen auf Overlays und laufende Onboardings? — Für ein bestehendes Projekt keine: Das Overlay ist Saat und wird nie überschrieben. Beim Release-Wechsel meldet `--check` die Core-Dateien als abweichend, sofern das Projekt noch den 0.4.0-Stand trägt; `--update` stellt her.
56
+ - [x] Dokumentation? — Platzhalterregister (`<CLIENT_NAME>`), CHANGELOG, Decision Log.
57
+
58
+ ## 4. Entscheidung
59
+
60
+ | Feld | Inhalt |
61
+ |---|---|
62
+ | Entscheidung | angenommen |
63
+ | Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
64
+ | Begründung | Ein Client Pack enthält jetzt nur noch, was tatsächlich clientspezifisch ist – sieben beziehungsweise sechs Dateien statt achtzig. Jede Doppelpflege ist beseitigt, ohne dass ein Inhalt sich ändert. |
65
+ | Ziel-Release | 0.5.0 |
66
+ | Decision-Log-Eintrag | D-17 |
67
+
68
+ ## 5. Umsetzung (nach Annahme)
69
+
70
+ - [x] `shared_core` / `shared_seed` in `install.py`; Verzeichnisse werden rekursiv abgebildet
71
+ - [x] `project-overlay/` und die beiden Regelvorlagen nach `templates/` verschoben, mit Laufzeit-Platzhaltern versehen
72
+ - [x] Wurzel-Anweisung, Core-Regeltexte und Agentenprofil nach `framework/runtime/` verschoben und neutralisiert
73
+ - [x] Renderer `render_rule`, `render_root_instruction`, `render_agent`; Auswahl anhand des Quellpfads
74
+ - [x] `<CLIENT_NAME>` als Laufzeit-Platzhalter registriert und in die Validatorprüfung aufgenommen
75
+ - [x] **Byteweiser Vergleich gegen 0.4.0**: alle fünf Laufzeitartefakte identisch
76
+ - [x] Erstinstallation unverändert: 80 / 79 Dateien; `--check` gegen beide fehlerfrei
77
+ - [x] Drift an einer gerenderten Regel: Exit 1 mit Nennung der gemeinsamen Quelle; `--update` stellt her
78
+ - [x] Validator gegen beide Installationen und das Übungsrepository: je 0 Fehler
79
+ - [x] Zwischenbefund behoben: Beim Entfernen der Import-Marke blieb eine Leerzeile stehen; sie hätte in jedem bestehenden Projekt eine Scheindrift ausgelöst
80
+ - [ ] Folgearbeit: Berechtigungsdatei und Hook-Konfiguration. Beide sind mehr als eine Formfrage – sie erfordern eine Semantikabbildung der Regeln (Werkzeugnamen, Präfixmuster, getrennte Werkzeuge für Ändern und Anlegen) und gehören in einen eigenen Änderungsantrag.
@@ -0,0 +1,85 @@
1
+ # Änderungsantrag `CR-2026-008`
2
+
3
+ | Feld | Inhalt |
4
+ |---|---|
5
+ | Titel | Berechtigungsdatei und Hook-Konfiguration: eine Kernquelle, Semantikabbildung je Client Pack |
6
+ | Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
7
+ | Datum | 2026-09-10 |
8
+ | Betroffene Artefakte | neu: `leitwerk-core/clientmap.py`, `framework/runtime/permissions.json`, `framework/runtime/hooks.json`; entfallen: `clients/devin-desktop/root-template/.devin/config.json`, `clients/devin-desktop/root-template/.devin/hooks.v1.json`, `clients/claude-code/root-template/.claude/settings.json`; geändert: `install.py`, `tests/scripts/validate-framework.py`, `clients/*/manifest.json`, `clients/*/CLIENT_PACK.md`, `clients/_template/CLIENT_PACK.md`, `clients/README.md`, `docs/PLACEHOLDER_REGISTRY.md` |
9
+ | Ebene laut Entscheidungsbaum 6 | Core (Struktur) |
10
+ | Art | Änderung |
11
+ | Dringlichkeit | regulär (Review-Zyklus) |
12
+
13
+ ## 1. Anlass und Problem
14
+
15
+ `CR-2026-007` hat die letzte Doppelpflege im Kern beseitigt – mit zwei ausdrücklich vertagten Ausnahmen: der Berechtigungsdatei und der Hook-Konfiguration. Sie blieben zurück, weil ihre Abbildung auf einen Client keine Formfrage ist.
16
+
17
+ Alle bisher zusammengeführten Artefakte unterscheiden sich zwischen zwei Client Packs nur in der **Form**: ein Frontmatter-Feld heißt anders, eine Werkzeugliste ist kommagetrennt statt eingerückt. Der Rumpf ist identisch, die Transformation verlustfrei und offensichtlich.
18
+
19
+ Bei Berechtigungen und Hooks unterscheiden sich die **Werkzeuge selbst**:
20
+
21
+ | Unterschied | `devin-desktop` | `claude-code` |
22
+ |---|---|---|
23
+ | Schreibwerkzeug | eines (`Write`) | zwei getrennte (`Edit`, `Write`) |
24
+ | Befehlsverbote | wörtlich (`Exec(git reset --hard)`) | präfixbasiert (`Bash(git reset:*)`) |
25
+ | Netzzugriff | ein Werkzeug mit Muster (`Fetch(*)`) | zwei Werkzeuge ohne Muster (`WebFetch`, `WebSearch`) |
26
+ | Suchwerkzeug | kein eigenes | `Grep`, `Glob` |
27
+ | Name im Projektverzeichnis | ohne Wurzelangabe (`.env`) | mit Wurzelangabe (`./.env`) |
28
+ | Hook-Ablage | eigene Datei | in der Berechtigungsdatei |
29
+
30
+ Genau daran hängen die Kernzusagen **B1 bis B6**. Doppelte Pflege ist hier deshalb nicht nur unbequem, sondern gefährlich: Eine Regel, die beim Nachziehen in das zweite Pack vergessen wird, ist eine stille Lücke in einer Schutzzusage – und die Fähigkeitsmatrix behauptet weiterhin `[TECHNISCH]`.
31
+
32
+ ## 2. Vorgeschlagene Änderung
33
+
34
+ **Die Regelmenge liegt einmal im Kern.** `framework/runtime/permissions.json` beschreibt sie werkzeugneutral: Ein Werkzeugverb (`read`, `search`, `write`, `exec`, `fetch`, `mcp`), dazu ein Pfadmuster oder ein Befehl. `framework/runtime/hooks.json` beschreibt die Hooks entsprechend: auf welche Werkzeugklassen ein Hook anspricht und welches Skript er ruft. Beide Dateien werden nicht installiert, sondern übersetzt.
35
+
36
+ **Die Abbildung steht im Manifest des Client Packs.** Sechs neue Felder für Berechtigungen (`permission_tools`, `permission_tools_bare`, `permission_path_prefix`, `permission_exec_match`, `permission_exec_suffix`, `permissions_extra`), zwei für Hooks (`hook_tools`, `hook_project_dir_var`), dazu `permissions_note` für die Abweichung, die im erzeugten Kommentar stehen soll. Ob ein Client eine eigene Hook-Datei kennt, wird **nicht** eigens angegeben, sondern daran erkannt, dass `<HOOKS_FILE>` und `<PERMISSIONS_FILE>` auf denselben Pfad zeigen – zwei Angaben über dieselbe Tatsache wären eine Fehlerquelle.
37
+
38
+ **Ein eigenes Modul `clientmap.py`**, weil die Abbildung von zwei Werkzeugen gebraucht wird: `install.py` erzeugt damit die Dateien, `validate-framework.py` prüft damit die installierte Datei gegen die Kernquelle.
39
+
40
+ **Drei Zusicherungen werden erzwungen, nicht behauptet.** Das Verschärfungsprinzip ist bei einer Semantikabbildung keine Frage der Sorgfalt mehr, sondern eine Eigenschaft, die das Werkzeug prüfen kann:
41
+
42
+ | Zusicherung | Wirkung bei Verletzung |
43
+ |---|---|
44
+ | Eine `deny`- oder `ask`-Regel, für die ein Client kein Werkzeug kennt, ist ein Fehler | Installation bricht ab. Stillschweigendes Weglassen wäre eine Lockerung. Bei `allow` ist Weglassen zulässig – es fällt auf den strengeren Standard zurück |
45
+ | Die Präfixform eines Befehlsverbots muss ein Präfix seiner wörtlichen Form sein | Installation bricht ab. Die Zusicherung macht die Präfixform nachweislich mindestens so breit – die Abweichung ist damit belegbar eine Verschärfung |
46
+ | Bei `allow` müssen wörtliche und Präfixform übereinstimmen | Installation bricht ab. Dort wäre jede Verbreiterung eine Lockerung |
47
+
48
+ **Der Validator prüft die Kernregeln erstmals gegen die Kernquelle**, nicht nur gegen die Datei selbst. Bisher genügte es, eine Kernregel in `deny` **und** in `_core_rules_integrity.deny_must_contain` zu streichen: Die Datei blieb in sich stimmig, der Verlust unbemerkt. Weil die Berechtigungsdatei Saat ist und `install.py --check` sie deshalb nie anfasst, war das die einzige verbleibende Lücke in der Kette.
49
+
50
+ **Ein neuer Platzhalter `<CORE_DIR>`.** Der Name des Kernverzeichnisses steht in den Schreibverboten und im Hook-Befehl. Er ist keine Eigenschaft eines Clients, sondern dieser Installation, und wird deshalb von `install.py` und dem Validator aus dem tatsächlichen Verzeichnisnamen gesetzt – nicht im Manifest belegt. Damit berührt die in der Roadmap vorgesehene Umbenennung des Kernverzeichnisses (P3) kein Client Pack.
51
+
52
+ ## 3. Prüffragen (durch Owner auszufüllen)
53
+
54
+ - [x] Richtige Ebene nach Entscheidungsbaum 6? — Ja. Die Regelmenge ist Ebene 3 (Framework Core); die Abbildung auf Werkzeugnamen ist die Abbildungsschicht aus D-12 und führt keine Regel ein.
55
+ - [x] Verschärfungsprinzip eingehalten? — Ja, und **nachgewiesen statt behauptet**: Alle drei erzeugten Dateien sind gegen den Stand 0.5.0 verglichen. Jede einzelne Berechtigungsregel und beide `_core_rules_integrity`-Blöcke sind byteweise identisch (13 Kernregeln bei `devin-desktop`, 17 bei `claude-code`). Zwei gewollte Abweichungen, beide ohne Wirkung auf das Schutzniveau: der erzeugte `_comment` (siehe Abschnitt 5) und die Reihenfolge im Hook-Matcher von `claude-code` (`Bash|Edit|Write|NotebookEdit` statt `Edit|Write|Bash|NotebookEdit`) – dieselbe Menge, eine Alternation ist ungeordnet.
56
+ - [x] Widerspruchsfreiheit geprüft? — Gelesen: `clients/README.md` Abschnitt 4 (Fähigkeitsmatrix, Kernzusagen), `PRIORITY_HIERARCHY.md`, D-04 (Berechtigungen versioniert mit restriktivem Standard), beide `CLIENT_PACK.md`. D-04 bleibt unberührt: Die Berechtigungen sind weiterhin versioniert und weiterhin Eigentum des Projekts, sobald sie angelegt sind.
57
+ - [x] Laufzeitfassungen betroffen? — Nur ihr Ursprung. Installationsumfang unverändert: 80 Dateien bei `devin-desktop`, 79 bei `claude-code`. Ein Client Pack enthält jetzt fünf Dateien statt sieben beziehungsweise sechs.
58
+ - [x] Belegstatus korrekt? — Unverändert. Keine Einstufung der Fähigkeitsmatrix wird durch diese Änderung belegt; die VERIFY-Marker bleiben stehen (Roadmap AP2).
59
+ - [x] Test- und Validierungsbedarf? — Siehe Abschnitt 5.
60
+ - [x] Auswirkungen auf Overlays und laufende Onboardings? — Für ein bestehendes Projekt keine. Die Berechtigungsdatei ist Saat und wird nie überschrieben; die dort eingetragenen Projektwerte bleiben. Neu ist allein, dass der Validator die Kernregeln zusätzlich gegen die Kernquelle prüft – ein Projekt, das keine Kernregel entfernt hat, merkt davon nichts.
61
+ - [x] Dokumentation? — Platzhalterregister (`<CORE_DIR>`), beide `CLIENT_PACK.md`, `clients/_template/CLIENT_PACK.md`, `clients/README.md`, die beiden Laufzeit-READMEs, CHANGELOG, Decision Log.
62
+
63
+ ## 4. Entscheidung
64
+
65
+ | Feld | Inhalt |
66
+ |---|---|
67
+ | Entscheidung | angenommen |
68
+ | Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
69
+ | Begründung | Die letzte und heikelste Doppelpflege ist beseitigt, ohne dass eine Regel sich ändert. Wichtiger als die Einsparung: Das Verschärfungsprinzip ist an der Stelle, an der die Kernzusagen B1 bis B6 hängen, jetzt eine geprüfte Eigenschaft und keine Zusage mehr. |
70
+ | Ziel-Release | 0.6.0 |
71
+ | Decision-Log-Eintrag | D-18 |
72
+
73
+ ## 5. Umsetzung (nach Annahme)
74
+
75
+ - [x] `framework/runtime/permissions.json` (53 `deny`-, 5 `ask`-, 7 `allow`-Regeln, 13 davon als Kernzusage gekennzeichnet) und `framework/runtime/hooks.json`
76
+ - [x] `clientmap.py` mit den drei erzwungenen Zusicherungen; `resolve_placeholders` dorthin verschoben, weil beide Aufrufer sie brauchen
77
+ - [x] Manifestfelder in beiden Packs; die drei Vorlagendateien aus den Client Packs entfernt
78
+ - [x] `install.py`: Auswahl der Transformation über den Quellpfad, wie bei den übrigen geteilten Bestandteilen; `<CORE_DIR>` aus dem Verzeichnisnamen
79
+ - [x] Validator: Abgleich der Kernregeln gegen die Kernquelle; fehlt `clientmap.py`, wird gewarnt statt zu scheitern, und die bisherigen Prüfungen greifen weiter
80
+ - [x] **Byteweiser Vergleich gegen 0.5.0**: alle Berechtigungsregeln und beide Kernregellisten identisch; Hook-Datei von `devin-desktop` vollständig identisch
81
+ - [x] Erstinstallation beider Packs in ein leeres Verzeichnis: 80 / 79 Dateien wie zuvor; `--check` gegen beide fehlerfrei
82
+ - [x] Validator gegen beide Installationen und gegen die Wurzelinstallation dieses Repositorys: 0 Fehler
83
+ - [x] **Negativtests der Zusicherungen**: Kernregel aus *beiden* Listen einer installierten Datei entfernt → Validator meldet sie (vor dieser Änderung unbemerkt). Abbildung ohne Schreibwerkzeug, `prefix` ohne Präfixeigenschaft, `allow`-Regel mit verkürzter Präfixform, Hook-Werkzeugklasse ohne Werkzeug → Installation bricht jeweils mit benannter Ursache ab
84
+ - [x] Zwischenbefund behoben: Der Validator leitete `<CORE_DIR>` eine Verzeichnisebene zu tief ab und erzeugte dadurch Regeln wie `Write(clients/framework/**)`
85
+ - [x] **Befund, eigener Änderungsantrag** – erledigt durch `CR-2026-012` (Release 0.10.0, D-22): Die Schreibverbote schützen `<CORE_DIR>/framework/**`, nicht das gesamte Kernverzeichnis. Damit sind `install.py`, `validate-framework.py`, die beiden Hook-Skripte und nun auch `clientmap.py` nicht schreibgeschützt – gerade die Skripte, die die Schutzzusagen durchsetzen. Der Befund ist älter als diese Änderung; `clientmap.py` tritt einer bestehenden Lücke bei, statt eine neue zu öffnen. Die naheliegende Verschärfung auf `<CORE_DIR>/**` ändert die Kernregelmenge und gehört deshalb nicht in diesen Antrag