@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,430 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ wirksamkeit.py - Die Wirksamkeitsprobe: Greift die Schutzschicht im Zielprojekt?
4
+
5
+ Aufruf (aus dem Wurzelverzeichnis des Projekts, mit dem Kern des Projekts):
6
+
7
+ python .koolie/core/install.py --probe # mit Startmeldung des Clients
8
+ python .koolie/core/install.py --probe --ohne-client # nur Hook, Konfiguration, Vertrauen
9
+
10
+ Exit-Code 0 = jede Muss-Kontrolle traegt, 1 = mindestens eine Muss-Kontrolle fehlt.
11
+
12
+ WARUM ES DIESE PROBE GIBT (K-195, D-488). Validator, 'install.py --check' und Pruefung 96
13
+ pruefen Dateien. Ob der Schutz-Hook in DIESEM Projekt laeuft und sperrt, ob die
14
+ Konfiguration laedt und ob der Client dem Projekt vertraut, prueft keines von ihnen - und
15
+ jede dieser Stellen ist schon einmal still ausgefallen: ein Hook mit einer Sperrform, die
16
+ der Client nicht liest (D-347), ein Agentenprofil, auf das der Client still verzichtet
17
+ (D-414), ein Vertrauenseintrag, ohne den bei openai-codex gar nichts laedt (K-118).
18
+
19
+ DIE PROBE KOMMT OHNE MODELL AUS:
20
+ - Der Hook wird mit dem Befehl aufgerufen, der in der Konfiguration des Projekts steht,
21
+ mit synthetischen Ereignissen: Lesen, Schreiben, Ausfuehren auf .env und - wo das
22
+ Pack MCP abbildet - ein MCP-Aufruf mit einem Koederwert. Jede muss gesperrt werden.
23
+ Ein harmloser Zugriff muss durchgehen.
24
+ - Die Startmeldung von claude-code wird mit einer Modelladresse abgerufen, die nicht
25
+ erreichbar ist (ANTHROPIC_BASE_URL auf einen geschlossenen Port). Der Client meldet
26
+ Werkzeuge, MCP-Server und Hooks, bevor er das Modell ruft, und der Modellaufruf
27
+ scheitert - gemessen am 2026-09-29 (Clientversion 2.1.284). Es entstehen keine Kosten.
28
+
29
+ EINE SPERRE WIRD AN IHREM TEXT ERKANNT, NICHT AM EXIT-CODE (D-490). Der Messapparat hat
30
+ seit 1.19.0 einen Hook als sperrend gewertet, wenn er mit Exit 2 endete. Unter Windows
31
+ startet 'cmd' den Befehl mit dem unaufgeloesten $CLAUDE_PROJECT_DIR, Python findet die
32
+ Datei nicht - und endet mit Exit 2. Ein Baum OHNE Hook-Skript bestand. Hier gilt deshalb:
33
+ Die Variable wird vor dem Aufruf ersetzt, eine Sperre muss den Hinweis 'Gesperrt:' tragen,
34
+ und die Gegenprobe muss mit Exit 0 ohne Hinweis durchgehen - das kann ein fehlendes Skript
35
+ nicht.
36
+
37
+ WAS DIE PROBE NICHT KANN - und sie sagt es als 'unerhoben', nie als Erfolg (D-276):
38
+ - Ob der Client den Hook bei einem echten Werkzeugaufruf startet. Die Startmeldung
39
+ belegt bei claude-code, dass die Hooks der Projektdatei geladen sind (der
40
+ Statushook laeuft); fuer die uebrigen Packs ist keine Startmeldung ohne Modell erhoben.
41
+ - Das Vertrauen des Schutz-Hooks bei openai-codex (ein Hash, den jede Hebung aendert).
42
+ Alle Befunde nennen Kategorien, keine Werte (D-39).
43
+ """
44
+ from __future__ import annotations
45
+
46
+ import io
47
+ import json
48
+ import os
49
+ import re
50
+ import shutil
51
+ import subprocess
52
+ import sys
53
+
54
+ HOOK_SKRIPT = "hook-check-secrets.py"
55
+ SPERRHINWEIS = "Gesperrt:"
56
+ # Zusammengesetzt, damit der Inhaltsscan des Validators den Koeder nicht als Fund meldet.
57
+ KOEDER = "pass" + "word=" + "KOOLIE-PROBE-0000-synthetisch"
58
+ # Ein geschlossener Port: Der Client scheitert am Modellaufruf, nachdem er die
59
+ # Startmeldung geschrieben hat. Gemessen am 2026-09-29.
60
+ TOTE_MODELLADRESSE = "http" + "://" + "127.0.0.1:9"
61
+
62
+ MUSS, WARNUNG, UNERHOBEN, OK = "MUSS", "WARNUNG", "UNERHOBEN", "OK"
63
+
64
+
65
+ class Ergebnis:
66
+ def __init__(self) -> None:
67
+ self.zeilen: list[tuple[str, str, str]] = []
68
+
69
+ def add(self, stufe: str, kontrolle: str, text: str) -> None:
70
+ self.zeilen.append((stufe, kontrolle, text))
71
+
72
+ @property
73
+ def verletzt(self) -> list:
74
+ return [z for z in self.zeilen if z[0] == MUSS]
75
+
76
+
77
+ # --------------------------------------------------------------- Hook-Konfiguration
78
+
79
+ def hook_datei(man: dict) -> str:
80
+ p = man.get("runtime_placeholders", {})
81
+ return p.get("<HOOKS_FILE>") or man.get("permissions_file", "")
82
+
83
+
84
+ def schutzhook_eintraege(daten) -> list[tuple[str, str]]:
85
+ """(Matcher, Befehl) jedes Eintrags, der den Schutz-Hook aufruft - formatunabhaengig.
86
+
87
+ Alle fuenf Packs fuehren den Matcher im selben Objekt wie den Befehl oder eine Ebene
88
+ darueber (claude-code, devin-desktop, openai-codex: {matcher, hooks: [{command}]};
89
+ cursor: {command, matcher}; kiro: {matcher, action: {command}}).
90
+ """
91
+ gefunden = []
92
+
93
+ def befehle(obj):
94
+ if isinstance(obj, dict):
95
+ for k, v in obj.items():
96
+ if k == "command" and isinstance(v, str):
97
+ yield v
98
+ else:
99
+ yield from befehle(v)
100
+ elif isinstance(obj, list):
101
+ for v in obj:
102
+ yield from befehle(v)
103
+
104
+ def gehe(obj):
105
+ if isinstance(obj, dict):
106
+ if isinstance(obj.get("matcher"), str):
107
+ for b in befehle(obj):
108
+ if HOOK_SKRIPT in b:
109
+ gefunden.append((obj["matcher"], b))
110
+ return
111
+ for v in obj.values():
112
+ gehe(v)
113
+ elif isinstance(obj, list):
114
+ for v in obj:
115
+ gehe(v)
116
+
117
+ gehe(daten)
118
+ return gefunden
119
+
120
+
121
+ def erwartete_namen(man: dict, verben: list[str]) -> list[tuple[str, str]]:
122
+ """(Verb, Werkzeugname) - die Namen, die der Matcher treffen muss."""
123
+ abbildung = man.get("hook_tools") or {}
124
+ namen = []
125
+ for verb in verben:
126
+ if verb == "mcp":
127
+ for praefix in man.get("hook_mcp_prefixes") or []:
128
+ namen.append((verb, praefix + "koolie_probe__werkzeug"))
129
+ continue
130
+ for name in abbildung.get(verb) or []:
131
+ namen.append((verb, name))
132
+ return namen
133
+
134
+
135
+ def befehl_aufloesen(befehl: str, root: str, man: dict) -> str:
136
+ """Die Projektvariable ersetzen - so, wie der Client sie setzt (D-490)."""
137
+ var = man.get("hook_project_dir_var")
138
+ wurzel = root.replace("\\", "/")
139
+ if var:
140
+ befehl = befehl.replace("${" + var + "}", wurzel).replace("$" + var, wurzel)
141
+ befehl = befehl.replace("%" + var + "%", wurzel)
142
+ return befehl
143
+
144
+
145
+ def hook_rufen(befehl: str, root: str, ereignis: dict) -> tuple[int, str]:
146
+ try:
147
+ lauf = subprocess.run(befehl, shell=True, cwd=root, input=json.dumps(ereignis),
148
+ capture_output=True, text=True, encoding="utf-8",
149
+ errors="replace", timeout=30)
150
+ except (OSError, subprocess.SubprocessError) as fehler:
151
+ return -1, type(fehler).__name__
152
+ return lauf.returncode, (lauf.stdout or "") + "\n" + (lauf.stderr or "")
153
+
154
+
155
+ def pruefe_hook(root: str, man: dict, verben: list[str], erg: Ergebnis) -> None:
156
+ rel = hook_datei(man)
157
+ pfad = os.path.join(root, *rel.split("/"))
158
+ if not os.path.isfile(pfad):
159
+ erg.add(MUSS, "H1 Hook konfiguriert", f"{rel} fehlt - der Schutz-Hook ist nicht "
160
+ f"eingetragen und laeuft nicht")
161
+ return
162
+ try:
163
+ daten = json.loads(io.open(pfad, encoding="utf-8-sig").read())
164
+ except ValueError:
165
+ erg.add(MUSS, "H1 Hook konfiguriert", f"{rel} ist kein gueltiges JSON - der Client "
166
+ f"laedt die Datei nicht, und mit ihr keinen Hook")
167
+ return
168
+ eintraege = schutzhook_eintraege(daten)
169
+ if not eintraege:
170
+ erg.add(MUSS, "H1 Hook konfiguriert", f"{rel} ruft {HOOK_SKRIPT} in keinem Eintrag "
171
+ f"mit Matcher auf")
172
+ return
173
+ erg.add(OK, "H1 Hook konfiguriert", f"{rel}: {len(eintraege)} Eintrag/Eintraege")
174
+ matcher, befehl = eintraege[0]
175
+ # H2: Der Matcher trifft jede Werkzeugklasse, die das Pack abbildet. Ein Matcher,
176
+ # der eine Klasse nicht nennt, laesst ihren Aufruf ungeprueft durch (K-70, K-184) -
177
+ # und --update schreibt diese Datei nicht (sie traegt Projektwerte).
178
+ try:
179
+ muster = re.compile(matcher)
180
+ except re.error:
181
+ muster = None
182
+ fehlend = []
183
+ for verb, name in erwartete_namen(man, verben):
184
+ treffer = (muster.fullmatch(name) is not None) if muster else (
185
+ name in matcher.split(man.get("hook_matcher_separator", "|")))
186
+ if not treffer:
187
+ fehlend.append(f"{verb}:{name}")
188
+ if fehlend:
189
+ erg.add(MUSS, "H2 Matcher vollstaendig", f"der Matcher in {rel} trifft "
190
+ f"{', '.join(fehlend)} nicht - diese Aufrufe erreichen den Hook nicht. "
191
+ f"Matcher aus einer frischen Installation uebernehmen "
192
+ f"(Migrationshinweis des Releases)")
193
+ else:
194
+ erg.add(OK, "H2 Matcher vollstaendig", f"alle {len(erwartete_namen(man, verben))} "
195
+ f"Werkzeugnamen getroffen")
196
+ # H3/H4: Wirkung. Jedes Ereignis traegt hook_event_name (wie vom Client) und die
197
+ # Marke koolie_probe, damit das Entscheidungsprotokoll die Probe ausweist.
198
+ aufruf = befehl_aufloesen(befehl, root, man)
199
+ abbildung = man.get("hook_tools") or {}
200
+
201
+ def ereignis(werkzeug, eingabe):
202
+ return {"hook_event_name": "PreToolUse", "tool_name": werkzeug, "cwd": root,
203
+ "tool_input": eingabe, "koolie_probe": True}
204
+
205
+ sonden = []
206
+ for titel, verb, eingabe in (
207
+ ("read .env", "read", {"file_path": ".env"}),
208
+ ("write .env", "write", {"file_path": ".env", "content": "x"}),
209
+ ("exec .env", "exec", {"command": "cat .env"}),
210
+ # Der Weg des eingebauten Skills upload-secrets (K-94, D-503): Die CLI liest
211
+ # die Werte selbst, im Befehl steht kein Pfad.
212
+ ("exec Secret-Upload", "exec",
213
+ {"command": "devin cloud drs secret-create --from-env KOOLIE_PROBE --dry-run"})):
214
+ for name in (abbildung.get(verb) or [])[:1]:
215
+ sonden.append((titel, ereignis(name, eingabe)))
216
+ if "mcp" in verben:
217
+ for praefix in (man.get("hook_mcp_prefixes") or [])[:1]:
218
+ sonden.append(("mcp Koederwert",
219
+ ereignis(praefix + "koolie_probe__senden", {"text": KOEDER})))
220
+ nicht_gesperrt = []
221
+ for titel, e in sonden:
222
+ code, aus = hook_rufen(aufruf, root, e)
223
+ if SPERRHINWEIS not in aus:
224
+ nicht_gesperrt.append(f"{titel} (Exit {code})")
225
+ if nicht_gesperrt:
226
+ erg.add(MUSS, "H3 Hook sperrt", "nicht gesperrt: " + "; ".join(nicht_gesperrt)
227
+ + " - der Hook laeuft nicht oder erkennt das Werkzeug nicht")
228
+ else:
229
+ erg.add(OK, "H3 Hook sperrt", f"{len(sonden)} Ereignisse gesperrt")
230
+ lesen = (abbildung.get("read") or abbildung.get("exec") or [None])[0]
231
+ gegen = ereignis(lesen, {"file_path": "README.md"} if abbildung.get("read")
232
+ else {"command": "git status"})
233
+ code, aus = hook_rufen(aufruf, root, gegen)
234
+ if code != 0 or SPERRHINWEIS in aus:
235
+ erg.add(MUSS, "H4 Hook laesst durch", f"ein harmloser Zugriff endete mit Exit {code}"
236
+ f"{' und Sperrhinweis' if SPERRHINWEIS in aus else ''} - der Hook startet "
237
+ f"nicht oder sperrt alles")
238
+ else:
239
+ erg.add(OK, "H4 Hook laesst durch", "harmloser Zugriff durchgelassen")
240
+
241
+
242
+ # ------------------------------------------------------------------ Startmeldung
243
+
244
+ def startmeldung_claude(root: str) -> tuple[list, list[str]]:
245
+ """(Ereignisse bis einschliesslich system/init, Textzeilen vor dem JSON)."""
246
+ exe = shutil.which("claude")
247
+ if not exe:
248
+ raise FileNotFoundError("claude")
249
+ umg = dict(os.environ, ANTHROPIC_BASE_URL=TOTE_MODELLADRESSE)
250
+ p = subprocess.Popen([exe, "-p", "OK", "--output-format", "stream-json", "--verbose",
251
+ "--max-turns", "1"], cwd=root, stdin=subprocess.DEVNULL,
252
+ stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True,
253
+ encoding="utf-8", errors="replace", env=umg)
254
+ ereignisse, text = [], []
255
+ try:
256
+ for zeile in p.stdout:
257
+ try:
258
+ e = json.loads(zeile)
259
+ except ValueError:
260
+ if zeile.strip():
261
+ text.append(zeile.strip())
262
+ continue
263
+ ereignisse.append(e)
264
+ if e.get("type") == "system" and e.get("subtype") == "init":
265
+ break
266
+ finally:
267
+ p.kill()
268
+ p.wait()
269
+ return ereignisse, text
270
+
271
+
272
+ def pruefe_start_claude(root: str, erg: Ergebnis) -> None:
273
+ try:
274
+ ereignisse, text = startmeldung_claude(root)
275
+ except (FileNotFoundError, OSError):
276
+ erg.add(UNERHOBEN, "K1 Konfiguration laedt", "der Befehl 'claude' ist nicht "
277
+ "auffindbar - Startmeldung nicht abgerufen")
278
+ return
279
+ init = next((e for e in ereignisse if e.get("subtype") == "init"), None)
280
+ if init is None:
281
+ erg.add(MUSS, "K1 Konfiguration laedt", "keine Startmeldung - der Client startet "
282
+ "in diesem Verzeichnis nicht")
283
+ return
284
+ status = [e for e in ereignisse if e.get("subtype") == "hook_response"
285
+ and "Framework-Statusmeldung" in str(e.get("output", ""))]
286
+ if status and all(e.get("outcome") == "success" for e in status):
287
+ erg.add(OK, "K1 Konfiguration laedt", "Startmeldung ohne Modellaufruf; der "
288
+ "Statushook des Frameworks lief - die Hooks der Projektdatei sind geladen")
289
+ else:
290
+ erg.add(MUSS, "K1 Konfiguration laedt", "der Statushook des Frameworks lief nicht - "
291
+ "die Hooks der Projektdatei sind nicht geladen (ungueltige Datei oder "
292
+ "verworfener Schluessel, vgl. D-433)")
293
+ if any("not been trusted" in z for z in text):
294
+ erg.add(WARNUNG, "V1 Vertrauen", "der Client vertraut dem Arbeitsbereich nicht und "
295
+ "ignoriert die allow-Eintraege der Projektdatei; deny, ask und Hooks gelten "
296
+ "(gemessen 2026-09-29). Einmal interaktiv starten und vertrauen")
297
+ else:
298
+ erg.add(OK, "V1 Vertrauen", "keine Meldung ueber fehlendes Vertrauen")
299
+ # Die Connectoren verbinden sich nebenlaeufig: Die Werkzeugliste der Startmeldung
300
+ # kann einen Server noch nicht fuehren, die Serverliste fuehrt ihn (gemessen
301
+ # 2026-09-29). Gezaehlt wird deshalb die Serverliste; abgeschaltet ist die Quelle,
302
+ # wenn die Projektdateien 'mcp__claude_ai_*' sperren - dann fehlen ihre Werkzeuge.
303
+ konto = sorted(s.get("name", "?") for s in init.get("mcp_servers") or []
304
+ if s.get("source") == "claudeai")
305
+ if konto and not konto_gesperrt(root):
306
+ erg.add(WARNUNG, "M1 Konto-Connectoren", f"{len(konto)} Connector(en) des "
307
+ f"claude.ai-Kontos stehen in der Sitzung ({', '.join(konto)}) - eine Quelle "
308
+ f"ausserhalb des Projekts (K-191). Abschalten fuer dieses Projekt: "
309
+ f"'mcp__claude_ai_*' in permissions.deny (gemessen 2026-09-29)")
310
+ elif konto:
311
+ erg.add(OK, "M1 Konto-Connectoren", f"{len(konto)} Connector(en) des Kontos "
312
+ f"verbunden, ihre Werkzeuge durch 'mcp__claude_ai_*' gesperrt")
313
+ else:
314
+ erg.add(OK, "M1 Konto-Connectoren", "keine Connectoren des Kontos in der Sitzung")
315
+
316
+
317
+ def konto_gesperrt(root: str) -> bool:
318
+ for rel in (".claude/settings.json", ".claude/settings.local.json"):
319
+ try:
320
+ d = json.loads(io.open(os.path.join(root, *rel.split("/")),
321
+ encoding="utf-8-sig").read())
322
+ except (OSError, ValueError):
323
+ continue
324
+ if "mcp__claude_ai_*" in ((d.get("permissions") or {}).get("deny") or []):
325
+ return True
326
+ return False
327
+
328
+
329
+ # ------------------------------------------------------------------- Vertrauen
330
+
331
+ def _pfadformen(root: str) -> set:
332
+ r = os.path.abspath(root)
333
+ return {r.lower(), r.replace("\\", "/").lower(), r.replace("/", "\\").lower()}
334
+
335
+
336
+ def pruefe_vertrauen_codex(root: str, erg: Ergebnis) -> None:
337
+ """K-118 (2): Die Benutzerkonfiguration traegt das Projekt als vertraut."""
338
+ heim = os.environ.get("CODEX_HOME") or os.path.join(os.path.expanduser("~"), ".codex")
339
+ pfad = os.path.join(heim, "config.toml")
340
+ try:
341
+ text = io.open(pfad, encoding="utf-8").read()
342
+ except OSError:
343
+ erg.add(MUSS, "V1 Vertrauen", "keine Benutzerkonfiguration des Clients - ohne "
344
+ "Vertrauenseintrag laden Konfiguration, Hooks und Befehlsregeln nicht (K-118)")
345
+ return
346
+ formen = _pfadformen(root)
347
+ vertraut = False
348
+ abschnitt = None
349
+ for zeile in text.splitlines():
350
+ m = re.match(r"""^\s*\[projects\.(["'])(.+)\1\]\s*$""", zeile)
351
+ if m:
352
+ abschnitt = m.group(2).replace("\\\\", "\\").lower()
353
+ continue
354
+ if zeile.strip().startswith("["):
355
+ abschnitt = None
356
+ if abschnitt in formen and re.match(r"""^\s*trust_level\s*=\s*["']trusted["']""",
357
+ zeile):
358
+ vertraut = True
359
+ if vertraut:
360
+ erg.add(OK, "V1 Vertrauen", "Projekt in der Benutzerkonfiguration als vertraut")
361
+ else:
362
+ erg.add(MUSS, "V1 Vertrauen", "das Projekt steht nicht als vertraut in der "
363
+ "Benutzerkonfiguration - Konfiguration, Hooks und Befehlsregeln laden nicht "
364
+ "(K-118). Einmal interaktiv starten und vertrauen")
365
+ erg.add(UNERHOBEN, "V2 Vertrauen des Hooks", "der Hash, mit dem der Client dem "
366
+ "Schutz-Hook vertraut, ist nicht pruefbar; nach jeder Hebung neu bestaetigen")
367
+
368
+
369
+ def pruefe_profil_kiro(root: str, man: dict, erg: Ergebnis) -> None:
370
+ rel = man.get("permissions_file", "")
371
+ pfad = os.path.join(root, *rel.split("/"))
372
+ try:
373
+ json.loads(io.open(pfad, encoding="utf-8-sig").read())
374
+ except (OSError, ValueError):
375
+ erg.add(MUSS, "V1 Profil", f"{rel} fehlt oder ist kein gueltiges JSON - der Client "
376
+ f"faellt still auf seinen eingebauten Agenten zurueck (D-414)")
377
+ return
378
+ erg.add(OK, "V1 Profil", f"{rel} lesbar")
379
+
380
+
381
+ # ------------------------------------------------------------------- Einstieg
382
+
383
+ def probe(root: str, man: dict, client: str, verben: list[str], mit_client: bool) -> Ergebnis:
384
+ erg = Ergebnis()
385
+ pruefe_hook(root, man, verben, erg)
386
+ if client == "claude-code":
387
+ if mit_client:
388
+ pruefe_start_claude(root, erg)
389
+ else:
390
+ erg.add(UNERHOBEN, "K1 Konfiguration laedt", "ohne Startmeldung (--ohne-client)")
391
+ elif client == "openai-codex":
392
+ pruefe_vertrauen_codex(root, erg)
393
+ erg.add(UNERHOBEN, "K1 Konfiguration laedt", "fuer dieses Pack ist keine "
394
+ "Startmeldung ohne Modell erhoben")
395
+ elif client == "kiro":
396
+ pruefe_profil_kiro(root, man, erg)
397
+ erg.add(UNERHOBEN, "K1 Konfiguration laedt", "fuer dieses Pack ist keine "
398
+ "Startmeldung ohne Modell erhoben; die Hooks laufen nur interaktiv (D-417)")
399
+ else:
400
+ erg.add(UNERHOBEN, "K1 Konfiguration laedt", "fuer dieses Pack ist keine "
401
+ "Startmeldung ohne Modell erhoben")
402
+ erg.add(UNERHOBEN, "V1 Vertrauen", "der Vertrauensspeicher dieses Clients ist nicht "
403
+ "erhoben")
404
+ for verb in man.get("hook_tools_unerhoben") or []:
405
+ erg.add(UNERHOBEN, f"H5 Werkzeugklasse {verb}", "fuer diesen Client nicht am Hook "
406
+ "gemessen - Aufrufe dieser Klasse prueft der Schutz-Hook nicht")
407
+ return erg
408
+
409
+
410
+ def ausgeben(erg: Ergebnis, root: str, client: str) -> int:
411
+ print(f"Wirksamkeitsprobe - {client} - {root}")
412
+ print()
413
+ for stufe, kontrolle, text in erg.zeilen:
414
+ marke = {"OK": "ok ", "MUSS": "FEHLT ", "WARNUNG": "WARNUNG ",
415
+ "UNERHOBEN": "unerhob."}[stufe]
416
+ print(f" {marke} {kontrolle}: {text}")
417
+ print()
418
+ n = len(erg.verletzt)
419
+ print(f"Ergebnis: {n} Muss-Kontrolle(n) fehlen, "
420
+ f"{sum(1 for z in erg.zeilen if z[0] == WARNUNG)} Warnung(en), "
421
+ f"{sum(1 for z in erg.zeilen if z[0] == UNERHOBEN)} unerhoben.")
422
+ if n:
423
+ print("Die Schutzschicht greift in diesem Projekt nicht vollstaendig. Vor der Arbeit "
424
+ "beheben.")
425
+ return 1 if n else 0
426
+
427
+
428
+ if __name__ == "__main__":
429
+ print("Aufruf ueber install.py --probe (es kennt das installierte Pack).", file=sys.stderr)
430
+ sys.exit(2)
@@ -0,0 +1,119 @@
1
+ # Am Framework mitarbeiten
2
+
3
+ Diese Seite ist für alle, die **an Koolie selbst** arbeiten – nicht für Projekte, die Koolie benutzen. Wer
4
+ Koolie in ein Projekt übernehmen will, beginnt mit der [README](README.md) und dem
5
+ [Übernahmeleitfaden](.koolie/core/docs/ADOPTION_GUIDE.md).
6
+
7
+ ## Nach dem Klonen
8
+
9
+ In **diesem** Repository sind die Wurzel-Anweisungsdatei, die Laufzeitschicht und `.koolie/project-overlay/`
10
+ **Erzeugnisse** und deshalb nicht versioniert (siehe `.gitignore`). Nach dem Klonen also einmal:
11
+
12
+ ```bash
13
+ python .koolie/core/install.py
14
+ ```
15
+
16
+ Damit gibt es keine zwei auseinanderlaufenden Fassungen derselben Kern-Datei.
17
+
18
+ > **Die so erzeugte Laufzeitschicht ist hier ein Prüfgegenstand, keine Schranke.** Wie in diesem Repository
19
+ > gearbeitet, gelesen und geändert wird, steht im Entwicklungsprofil des Quellrepositoriums,
20
+ > [`FRAMEWORK_DEV_PROFILE.md`](.koolie/core/governance/FRAMEWORK_DEV_PROFILE.md). Es wird in kein Zielprojekt
21
+ > installiert.
22
+
23
+ In einem **Projekt** gilt das Gegenteil: Dort werden Wurzel-Anweisungsdatei, Laufzeitschicht und
24
+ `.koolie/project-overlay/` versioniert. Die entsprechenden Zeilen der `.gitignore` sind beim Übernehmen deshalb
25
+ nicht mitzunehmen.
26
+
27
+ ## Wo eine Änderung hingehört
28
+
29
+ Die gemeinsamen Quellen liegen **im Kern**, nicht im Client Pack:
30
+
31
+ | Was geändert werden soll | Quelle |
32
+ |---|---|
33
+ | Wurzel-Anweisungsdatei, Regeltexte, Berechtigungen, Hook-Konfiguration, Agentenprofile | `.koolie/core/framework/runtime/` |
34
+ | Skills | `.koolie/core/framework/skills/` |
35
+ | Overlay-Vorlage, Regelvorlagen | `.koolie/core/templates/` |
36
+ | Normativer Kern (FW-CORE-00…10) | `.koolie/core/framework/core/` |
37
+ | Pfad-, Werkzeug- und Hook-Abbildung eines Clients | `.koolie/core/clients/<client>/manifest.json` |
38
+ | Fähigkeitsmatrix eines Clients | `.koolie/core/clients/<client>/CLIENT_PACK.md` |
39
+ | Der Befehl `koolie` und die Pakete für PyPI und npm | `paketquellen/` |
40
+
41
+ Das `root-template/` eines Packs enthält **nur die README der Laufzeitschicht**; die gesamte Saat kommt aus
42
+ dem Kern. **Niemals in die erzeugte Laufzeitschicht im Wurzelverzeichnis schreiben** –
43
+ `install.py --check` deckt eine Bearbeitung an der falschen Stelle auf.
44
+
45
+ ## Aufbau eines Projekts mit Koolie
46
+
47
+ Das gesamte unveränderliche Framework liegt in **einem** Verzeichnis: `.koolie/core/`. Im Wurzelverzeichnis
48
+ landen nur die Dinge, die ein KI-Client ausschließlich dort findet; **wie sie heißen, entscheidet das Client
49
+ Pack** – das [Laufzeitglossar](.koolie/core/docs/RUNTIME_GLOSSARY.md) löst jeden Platzhalter je Pack auf.
50
+
51
+ ```text
52
+ <projekt>/
53
+ ├── <Wurzel-Anweisungsdatei> # Agentenanweisung (aus dem Kern installiert)
54
+ ├── <Laufzeitschicht>/ # vollständig erzeugt – nie von Hand schreiben
55
+ │ ├── <Berechtigungsdatei> # Kernregeln + Projektwerte (je Pack: samt Hooks)
56
+ │ ├── agents/fw-reviewer.md # nur lesendes Review-Subagentenprofil
57
+ │ ├── rules/00-, 10-, 15-*.md # Core-Kurzfassungen ....... aus dem Kern
58
+ │ ├── rules/20-project-overlay.md # Overlay-Laufzeitfassung ... Projekt
59
+ │ ├── rules/2N-overlay-*.md # Overlay-Regelerweiterungen Projekt
60
+ │ ├── rules/30-, 40-*.md # aktivierte Packs
61
+ │ └── skills/fw-* role-* tech-* prj-* # Kern | aktivierte Packs | Projekt
62
+ │
63
+ ├── .koolie/
64
+ │ ├── core/ # DER KERN: unveränderlich, byte-gleich
65
+ │ │ ├── install.py · clientmap.py # legt die Wurzeldateien an, bildet sie ab
66
+ │ │ ├── install_dialog.py # Dialog hinter install.cmd / install.command / koolie
67
+ │ │ ├── clients/ # Abbildung auf KI-Clients, je Client ein Pack
68
+ │ │ ├── framework/ # Kern, Laufzeitquellen, Skills, Role- und Tech-Packs
69
+ │ │ ├── prompts/ checklists/ decision-trees/ onboarding/ templates/ examples/
70
+ │ │ ├── governance/ # RACI, Prozesse, Decision Log, Änderungsanträge
71
+ │ │ ├── docs/ # Übernahmeleitfaden, Roadmap, Register
72
+ │ │ ├── tests/ # Testkatalog, Validator, Hook-Skripte, Protokolle
73
+ │ │ └── build/ # Assemblierung des Hauptdokuments
74
+ │ └── project-overlay/ # gehört dem Projekt
75
+ │ ├── OVERLAY.md · overlay-manifest.yaml
76
+ │ ├── forbidden-terms.txt # projektlokale Sperrbegriffe
77
+ │ └── documents/ exceptions/
78
+ │
79
+ └── <Projektcode>
80
+ ```
81
+
82
+ ## Framework prüfen
83
+
84
+ | Befehl | Prüft |
85
+ |---|---|
86
+ | `python .koolie/core/tests/scripts/validate-framework.py` | Struktur, Frontmatter, Skill-Konformität, verbotene Inhalte, Platzhalter – im Framework-Repository muss der Lauf fehlerfrei sein |
87
+ | `… --mermaid` | zusätzlich die Syntax aller Diagramme (benötigt `mmdc`) |
88
+ | `… --check-overlay-ready` / `… --strict-overlay` | Aktivierungsreife beziehungsweise aktiven Zustand eines Overlays – nur im Projekt sinnvoll; hier erwartungsgemäß rot |
89
+ | `python .koolie/core/tests/scripts/probe-pruefungen.py` | ob jede Prüfung des Validators einen bekannten Defekt meldet und ein fehlerfreier Baum durchkommt |
90
+ | [`TEST_CATALOG.md`](.koolie/core/tests/TEST_CATALOG.md) | das Verhalten des KI-Clients in Testsitzungen |
91
+
92
+ ## Releases
93
+
94
+ Wie ein Release entsteht – Änderungsantrag, Prüfungen, signierte Marke, Archiv, Pakete und Veröffentlichung –,
95
+ steht in [`RELEASE_PROCESS.md`](.koolie/core/governance/RELEASE_PROCESS.md). Entscheidungen mit Begründung
96
+ führt das [`DECISION_LOG.md`](.koolie/core/governance/DECISION_LOG.md): `D-…` ist ein Decision Record, `K-…`
97
+ ein offener Klärungspunkt, `CR-…` ein Änderungsantrag unter `.koolie/core/governance/change-requests/`.
98
+
99
+ ## Schnellzugriff nach Rolle
100
+
101
+ | Ich bin … | Startpunkt |
102
+ |---|---|
103
+ | neu im Team eines Projekts, das Koolie nutzt | [Onboarding-Quickstart](.koolie/core/onboarding/QUICKSTART.md), dann [`GUIDE.md`](.koolie/core/onboarding/GUIDE.md) |
104
+ | Entwicklerin oder Entwickler im Alltag | [`REFERENCE.md`](.koolie/core/onboarding/REFERENCE.md), [`01-preflight.md`](.koolie/core/checklists/01-preflight.md) |
105
+ | Reviewerin oder Reviewer | [`04-review-ai-code.md`](.koolie/core/checklists/04-review-ai-code.md), [`07-review-rules.md`](.koolie/core/framework/core/07-review-rules.md) |
106
+ | Overlay Owner / Projektleitung | [`ADOPTION_GUIDE.md`](.koolie/core/docs/ADOPTION_GUIDE.md), [`10-project-adoption.md`](.koolie/core/checklists/10-project-adoption.md), [`pilot/`](.koolie/core/pilot/) |
107
+ | Framework Owner | [`governance/`](.koolie/core/governance/), [`11-framework-release.md`](.koolie/core/checklists/11-framework-release.md), [`ROADMAP.md`](.koolie/core/docs/ROADMAP.md) |
108
+ | Sicherheit / Datenschutz | [`02-privacy.md`](.koolie/core/framework/core/02-privacy.md), [`03-security.md`](.koolie/core/framework/core/03-security.md), [`INCIDENT_HANDLING.md`](.koolie/core/governance/INCIDENT_HANDLING.md) |
109
+
110
+ ## Konventionen
111
+
112
+ Verbindlichkeit über **MUSS/SOLL/KANN/DARF NICHT**; produktbezogene Aussagen tragen einen Belegstatus
113
+ `[DOK]`/`[EMPF]`/`[KONZ]` oder `BELEG OFFEN` mit Grund und Datum; variable Inhalte ausschließlich als
114
+ registrierte Platzhalter ([`PLACEHOLDER_REGISTRY.md`](.koolie/core/docs/PLACEHOLDER_REGISTRY.md)); Beispiele
115
+ sind stets als synthetisch gekennzeichnet; Personen werden nirgends genannt – nur Rollen.
116
+
117
+ Die Lizenzdatei liegt an **zwei** Stellen mit demselben Inhalt – in der Wurzel und unter
118
+ `.koolie/core/LICENSE` –, weil ein übernehmendes Projekt den Kern als Ganzes kopiert und ein Werk nicht ohne
119
+ seine Lizenz weitergegeben werden darf. Der Validator hält beide gegeneinander.