@renoxar/koolie 1.25.0 → 2.0.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 (232) hide show
  1. package/.github/workflows/publish.yml +177 -0
  2. package/.koolie/QUELLREPOSITORIUM.md +9 -14
  3. package/.koolie/core/CHANGELOG.md +59 -0
  4. package/.koolie/core/LICENSE-HINWEIS.md +5 -6
  5. package/.koolie/core/OWNERS.md +2 -2
  6. package/.koolie/core/VERSION +1 -1
  7. package/.koolie/core/build/doc/00-kopf.md +6 -6
  8. package/.koolie/core/build/doc/01-executive-summary.md +8 -8
  9. package/.koolie/core/build/doc/03-ziele-nichtziele.md +2 -2
  10. package/.koolie/core/build/doc/04-geltungsbereich.md +4 -4
  11. package/.koolie/core/build/doc/05-glossar.md +3 -3
  12. package/.koolie/core/build/doc/07-architektur.md +2 -2
  13. package/.koolie/core/build/doc/07a-abbildungsschicht.md +9 -9
  14. package/.koolie/core/build/doc/08-trennung.md +3 -3
  15. package/.koolie/core/build/doc/09-betriebsmodi.md +8 -8
  16. package/.koolie/core/build/doc/15-referenzstruktur.md +56 -27
  17. package/.koolie/core/build/doc/16-agentenanweisung.md +2 -2
  18. package/.koolie/core/build/doc/20-referenz-skills.md +46 -46
  19. package/.koolie/core/build/doc/25-governance.md +9 -1
  20. package/.koolie/core/build/doc/26-qs-test.md +32 -3
  21. package/.koolie/core/build/doc/27-pilot.md +2 -2
  22. package/.koolie/core/build/doc/28-uebernahme.md +9 -1
  23. package/.koolie/core/build/doc/30-roadmap.md +3 -1
  24. package/.koolie/core/build/doc/31-anhaenge.md +1 -1
  25. package/.koolie/core/checklists/01-preflight.md +3 -3
  26. package/.koolie/core/checklists/02-privacy-context.md +1 -1
  27. package/.koolie/core/checklists/03-before-code-change.md +2 -2
  28. package/.koolie/core/checklists/04-review-ai-code.md +1 -1
  29. package/.koolie/core/checklists/05-testing.md +1 -1
  30. package/.koolie/core/checklists/06-security.md +1 -1
  31. package/.koolie/core/checklists/08-merge-request.md +1 -1
  32. package/.koolie/core/checklists/09-onboarding.md +2 -2
  33. package/.koolie/core/checklists/10-project-adoption.md +8 -8
  34. package/.koolie/core/checklists/11-framework-release.md +14 -14
  35. package/.koolie/core/clientmap.py +2 -2
  36. package/.koolie/core/clients/README.md +54 -52
  37. package/.koolie/core/clients/_template/CLIENT_PACK.md +19 -19
  38. package/.koolie/core/clients/claude-code/CLIENT_PACK.md +108 -164
  39. package/.koolie/core/clients/claude-code/manifest.json +5 -5
  40. package/.koolie/core/clients/claude-code/root-template/.claude/README.md +9 -9
  41. package/.koolie/core/clients/cursor/CLIENT_PACK.md +66 -60
  42. package/.koolie/core/clients/cursor/manifest.json +3 -3
  43. package/.koolie/core/clients/cursor/root-template/.cursor/README.md +3 -3
  44. package/.koolie/core/clients/devin-desktop/CLIENT_PACK.md +62 -64
  45. package/.koolie/core/clients/devin-desktop/manifest.json +5 -5
  46. package/.koolie/core/clients/devin-desktop/root-template/.devin/README.md +9 -9
  47. package/.koolie/core/clients/kiro/CLIENT_PACK.md +55 -48
  48. package/.koolie/core/clients/kiro/manifest.json +4 -4
  49. package/.koolie/core/clients/kiro/root-template/.kiro/README.md +3 -3
  50. package/.koolie/core/clients/openai-codex/CLIENT_PACK.md +98 -103
  51. package/.koolie/core/clients/openai-codex/manifest.json +3 -3
  52. package/.koolie/core/clients/openai-codex/root-template/.codex/README.md +2 -2
  53. package/.koolie/core/decision-trees/02-may-ai-do-task.md +2 -2
  54. package/.koolie/core/decision-trees/03-analyze-or-modify.md +12 -12
  55. package/.koolie/core/decision-trees/04-required-review.md +1 -1
  56. package/.koolie/core/docs/ADOPTION_GUIDE.md +281 -385
  57. package/.koolie/core/docs/DOCUMENTATION_STANDARD.md +44 -36
  58. package/.koolie/core/docs/PLACEHOLDER_REGISTRY.md +8 -8
  59. package/.koolie/core/docs/ROADMAP.md +34 -17
  60. package/.koolie/core/docs/RUNTIME_GLOSSARY.md +34 -35
  61. package/.koolie/core/examples/example-ergebnisbericht.md +1 -1
  62. package/.koolie/core/examples/example-mr-description.md +2 -2
  63. package/.koolie/core/framework/core/00-principles.md +1 -1
  64. package/.koolie/core/framework/core/01-governance.md +8 -8
  65. package/.koolie/core/framework/core/02-privacy.md +12 -12
  66. package/.koolie/core/framework/core/03-security.md +13 -11
  67. package/.koolie/core/framework/core/05-working-model.md +22 -22
  68. package/.koolie/core/framework/core/06-prompting-rules.md +5 -5
  69. package/.koolie/core/framework/core/07-review-rules.md +1 -1
  70. package/.koolie/core/framework/core/08-skill-conventions.md +11 -11
  71. package/.koolie/core/framework/core/09-risk-model.md +6 -6
  72. package/.koolie/core/framework/core/10-error-escalation.md +1 -1
  73. package/.koolie/core/framework/org-policies/MAPPING_CLASSIFICATION.md +1 -1
  74. package/.koolie/core/framework/overlay-patterns/general.md +63 -75
  75. package/.koolie/core/framework/role-packs/README.md +16 -28
  76. package/.koolie/core/framework/role-packs/_template/ROLE_PACK.md +3 -3
  77. package/.koolie/core/framework/role-packs/requirements-engineering/ROLE_PACK.md +23 -22
  78. package/.koolie/core/framework/role-packs/requirements-engineering/runtime/30-role-requirements-engineering.md +5 -5
  79. package/.koolie/core/framework/role-packs/requirements-engineering/skills/{role-re-ticket → koolie-ticket}/CHANGELOG.md +2 -1
  80. package/.koolie/core/framework/role-packs/requirements-engineering/skills/{role-re-ticket → koolie-ticket}/EXAMPLES.md +5 -5
  81. package/.koolie/core/framework/role-packs/requirements-engineering/skills/{role-re-ticket → koolie-ticket}/SKILL.md +9 -9
  82. package/.koolie/core/framework/role-packs/requirements-engineering/skills/koolie-ticket/TESTS.md +22 -0
  83. package/.koolie/core/framework/role-packs/software-development/ROLE_PACK.md +16 -16
  84. package/.koolie/core/framework/role-packs/software-development/runtime/30-role-software-development.md +1 -1
  85. package/.koolie/core/framework/runtime/agents/{fw-reviewer.md → koolie-reviewer.md} +2 -2
  86. package/.koolie/core/framework/runtime/permissions.json +13 -13
  87. package/.koolie/core/framework/runtime/root-instruction.md +5 -5
  88. package/.koolie/core/framework/runtime/rules/10-privacy-security.md +2 -2
  89. package/.koolie/core/framework/runtime/rules/15-development-rules.md +1 -1
  90. package/.koolie/core/framework/runtime/rules/16-plan-spezifikation.md +1 -1
  91. package/.koolie/core/framework/runtime/rules/20-project-overlay.md +2 -2
  92. package/.koolie/core/framework/skills/{fw-bugfix-prepare → koolie-bugfix-prepare}/CHANGELOG.md +2 -1
  93. package/.koolie/core/framework/skills/{fw-bugfix-prepare → koolie-bugfix-prepare}/EXAMPLES.md +8 -8
  94. package/.koolie/core/framework/skills/{fw-bugfix-prepare → koolie-bugfix-prepare}/SKILL.md +21 -21
  95. package/.koolie/core/framework/skills/koolie-bugfix-prepare/TESTS.md +15 -0
  96. package/.koolie/core/framework/skills/{fw-change-analyze → koolie-change-analyze}/CHANGELOG.md +2 -1
  97. package/.koolie/core/framework/skills/{fw-change-analyze → koolie-change-analyze}/EXAMPLES.md +6 -6
  98. package/.koolie/core/framework/skills/{fw-change-analyze → koolie-change-analyze}/SKILL.md +12 -12
  99. package/.koolie/core/framework/skills/koolie-change-analyze/TESTS.md +16 -0
  100. package/.koolie/core/framework/skills/{fw-change-small → koolie-change-small}/CHANGELOG.md +2 -1
  101. package/.koolie/core/framework/skills/{fw-change-small → koolie-change-small}/EXAMPLES.md +4 -4
  102. package/.koolie/core/framework/skills/{fw-change-small → koolie-change-small}/SKILL.md +15 -15
  103. package/.koolie/core/framework/skills/koolie-change-small/TESTS.md +13 -0
  104. package/.koolie/core/framework/skills/{fw-code-explain → koolie-code-explain}/CHANGELOG.md +2 -1
  105. package/.koolie/core/framework/skills/{fw-code-explain → koolie-code-explain}/EXAMPLES.md +4 -4
  106. package/.koolie/core/framework/skills/{fw-code-explain → koolie-code-explain}/SKILL.md +10 -10
  107. package/.koolie/core/framework/skills/koolie-code-explain/TESTS.md +11 -0
  108. package/.koolie/core/framework/skills/{fw-docs-update → koolie-docs-update}/CHANGELOG.md +2 -1
  109. package/.koolie/core/framework/skills/{fw-docs-update → koolie-docs-update}/EXAMPLES.md +3 -3
  110. package/.koolie/core/framework/skills/{fw-docs-update → koolie-docs-update}/SKILL.md +8 -8
  111. package/.koolie/core/framework/skills/koolie-docs-update/TESTS.md +12 -0
  112. package/.koolie/core/framework/skills/{fw-error-analyze → koolie-error-analyze}/CHANGELOG.md +2 -1
  113. package/.koolie/core/framework/skills/{fw-error-analyze → koolie-error-analyze}/EXAMPLES.md +6 -6
  114. package/.koolie/core/framework/skills/{fw-error-analyze → koolie-error-analyze}/SKILL.md +15 -15
  115. package/.koolie/core/framework/skills/koolie-error-analyze/TESTS.md +12 -0
  116. package/.koolie/core/framework/skills/{fw-mr-description → koolie-mr-description}/CHANGELOG.md +2 -1
  117. package/.koolie/core/framework/skills/{fw-mr-description → koolie-mr-description}/EXAMPLES.md +6 -6
  118. package/.koolie/core/framework/skills/{fw-mr-description → koolie-mr-description}/SKILL.md +8 -8
  119. package/.koolie/core/framework/skills/koolie-mr-description/TESTS.md +12 -0
  120. package/.koolie/core/framework/skills/{fw-overlay-pflege → koolie-overlay-pflege}/CHANGELOG.md +2 -1
  121. package/.koolie/core/framework/skills/{fw-overlay-pflege → koolie-overlay-pflege}/EXAMPLES.md +4 -4
  122. package/.koolie/core/framework/skills/{fw-overlay-pflege → koolie-overlay-pflege}/SKILL.md +8 -8
  123. package/.koolie/core/framework/skills/koolie-overlay-pflege/TESTS.md +13 -0
  124. package/.koolie/core/framework/skills/{fw-plan → koolie-plan}/CHANGELOG.md +2 -1
  125. package/.koolie/core/framework/skills/{fw-plan → koolie-plan}/EXAMPLES.md +7 -7
  126. package/.koolie/core/framework/skills/{fw-plan → koolie-plan}/SKILL.md +14 -14
  127. package/.koolie/core/framework/skills/koolie-plan/TESTS.md +14 -0
  128. package/.koolie/core/framework/skills/{fw-refactor → koolie-refactor}/CHANGELOG.md +2 -1
  129. package/.koolie/core/framework/skills/{fw-refactor → koolie-refactor}/EXAMPLES.md +4 -4
  130. package/.koolie/core/framework/skills/{fw-refactor → koolie-refactor}/SKILL.md +12 -12
  131. package/.koolie/core/framework/skills/koolie-refactor/TESTS.md +14 -0
  132. package/.koolie/core/framework/skills/{fw-repo-analyze → koolie-repo-analyze}/CHANGELOG.md +2 -1
  133. package/.koolie/core/framework/skills/{fw-repo-analyze → koolie-repo-analyze}/EXAMPLES.md +4 -4
  134. package/.koolie/core/framework/skills/{fw-repo-analyze → koolie-repo-analyze}/SKILL.md +8 -8
  135. package/.koolie/core/framework/skills/koolie-repo-analyze/TESTS.md +11 -0
  136. package/.koolie/core/framework/skills/{fw-review-support → koolie-review-support}/CHANGELOG.md +2 -1
  137. package/.koolie/core/framework/skills/{fw-review-support → koolie-review-support}/EXAMPLES.md +3 -3
  138. package/.koolie/core/framework/skills/{fw-review-support → koolie-review-support}/SKILL.md +7 -7
  139. package/.koolie/core/framework/skills/koolie-review-support/TESTS.md +13 -0
  140. package/.koolie/core/framework/skills/{fw-tests → koolie-tests}/CHANGELOG.md +2 -1
  141. package/.koolie/core/framework/skills/{fw-tests → koolie-tests}/EXAMPLES.md +5 -5
  142. package/.koolie/core/framework/skills/{fw-tests → koolie-tests}/SKILL.md +11 -11
  143. package/.koolie/core/framework/skills/koolie-tests/TESTS.md +12 -0
  144. package/.koolie/core/framework/tech-packs/README.md +2 -2
  145. package/.koolie/core/framework/tech-packs/_template/TECH_PACK.md +2 -2
  146. package/.koolie/core/governance/ADOPTION_REGISTRY.md +22 -58
  147. package/.koolie/core/governance/CHANGE_REQUEST_TEMPLATE.md +1 -1
  148. package/.koolie/core/governance/DECISION_LOG.md +7 -1
  149. package/.koolie/core/governance/EXCEPTION_PROCESS.md +1 -1
  150. package/.koolie/core/governance/FEEDBACK_PROCESS.md +1 -1
  151. package/.koolie/core/governance/FRAMEWORK_DEV_PROFILE.md +64 -66
  152. package/.koolie/core/governance/PRIORITY_HIERARCHY.md +13 -13
  153. package/.koolie/core/governance/RACI.md +3 -3
  154. package/.koolie/core/governance/RELEASE_PROCESS.md +101 -108
  155. package/.koolie/core/governance/change-requests/CR-2026-173-oeffentlicher-auftritt-koolie-praefix.md +67 -0
  156. package/.koolie/core/install.py +99 -0
  157. package/.koolie/core/koexistenz.py +2 -2
  158. package/.koolie/core/onboarding/GUIDE.md +7 -7
  159. package/.koolie/core/onboarding/KNOWLEDGE_CHECK.md +1 -1
  160. package/.koolie/core/onboarding/MENTOR_CHECKLIST.md +3 -3
  161. package/.koolie/core/onboarding/QUICKSTART.md +2 -2
  162. package/.koolie/core/onboarding/REFERENCE.md +14 -14
  163. package/.koolie/core/onboarding/exercises/EXERCISES.md +8 -8
  164. package/.koolie/core/onboarding/exercises/README.md +47 -65
  165. package/.koolie/core/pilot/PILOT_CONCEPT.md +1 -1
  166. package/.koolie/core/prompts/01-understand-codebase.md +11 -7
  167. package/.koolie/core/prompts/02-impact-analysis.md +17 -7
  168. package/.koolie/core/prompts/03-implementation-planning.md +10 -6
  169. package/.koolie/core/prompts/04-code-generation.md +11 -5
  170. package/.koolie/core/prompts/05-test-generation.md +13 -7
  171. package/.koolie/core/prompts/06-refactoring.md +14 -8
  172. package/.koolie/core/prompts/07-debugging.md +13 -11
  173. package/.koolie/core/prompts/08-security-review.md +2 -2
  174. package/.koolie/core/prompts/09-performance-analysis.md +2 -2
  175. package/.koolie/core/prompts/10-documentation.md +6 -4
  176. package/.koolie/core/prompts/11-merge-request-review.md +7 -5
  177. package/.koolie/core/prompts/12-developer-training.md +5 -3
  178. package/.koolie/core/prompts/README.md +17 -15
  179. package/.koolie/core/templates/MR_AI_DISCLOSURE.md +2 -2
  180. package/.koolie/core/templates/PLAN_TEMPLATE.md +2 -2
  181. package/.koolie/core/templates/SKILL_TEMPLATE.md +3 -3
  182. package/.koolie/core/templates/project-overlay/OVERLAY.md +28 -22
  183. package/.koolie/core/templates/project-overlay/documents/architecture/decisions/README.md +1 -1
  184. package/.koolie/core/tests/EDGE_CASES.md +4 -7
  185. package/.koolie/core/tests/TEST_CATALOG.md +33 -33
  186. package/.koolie/core/tests/protocols/2026-10-02-oeffentlicher-auftritt-2.0.0.md +42 -0
  187. package/.koolie/core/tests/scripts/hook-check-secrets.py +2 -2
  188. package/.koolie/core/tests/scripts/hook-overlay-status.py +1 -1
  189. package/.koolie/core/tests/scripts/probe-pruefungen.py +4 -2
  190. package/.koolie/core/tests/scripts/pruefungen/berechtigungen.py +7 -7
  191. package/.koolie/core/tests/scripts/pruefungen/bestand.py +20 -3
  192. package/.koolie/core/tests/scripts/pruefungen/dokumente.py +88 -0
  193. package/.koolie/core/tests/scripts/pruefungen/gemeinsam.py +1 -1
  194. package/.koolie/core/tests/scripts/pruefungen/hooks.py +1 -1
  195. package/.koolie/core/tests/scripts/pruefungen/overlay.py +5 -5
  196. package/.koolie/core/tests/scripts/pruefungen/testkatalog.py +5 -5
  197. package/.koolie/core/tests/scripts/pruefungen/werkzeuge.py +81 -2
  198. package/.koolie/core/tests/scripts/sonden/teil02_packs_mandat_mcp.py +6 -6
  199. package/.koolie/core/tests/scripts/sonden/teil03_pruefungen_26_bis_36.py +11 -11
  200. package/.koolie/core/tests/scripts/sonden/teil04_pruefungen_37_bis_45.py +11 -11
  201. package/.koolie/core/tests/scripts/sonden/teil05_pruefungen_46_bis_55.py +4 -4
  202. package/.koolie/core/tests/scripts/sonden/teil06_pruefungen_57_bis_65.py +33 -33
  203. package/.koolie/core/tests/scripts/sonden/teil07_overlay_und_lieferung.py +3 -3
  204. package/.koolie/core/tests/scripts/sonden/teil08_pruefungen_66_bis_80.py +3 -3
  205. package/.koolie/core/tests/scripts/sonden/teil10_pruefungen_83_bis_95.py +3 -3
  206. package/.koolie/core/tests/scripts/sonden/teil11_pruefungen_104_und_105.py +2 -2
  207. package/.koolie/core/tests/scripts/sonden/teil14_modi_ausnahmen_skills.py +1 -1
  208. package/.koolie/core/tests/scripts/sonden/teil16_koexistenz.py +5 -5
  209. package/.koolie/core/tests/scripts/sonden/teil17_paketquellen.py +33 -0
  210. package/.koolie/core/tests/scripts/sonden/teil19_skillnamen.py +97 -0
  211. package/.koolie/core/tests/scripts/sonden/teil20_kennungen.py +70 -0
  212. package/.koolie/core/tests/scripts/validate-framework.py +15 -6
  213. package/.koolie/core/tests/scripts/validate-output.py +1 -1
  214. package/CONTRIBUTING.md +16 -10
  215. package/QUICKSTART.en.md +44 -51
  216. package/QUICKSTART.md +44 -50
  217. package/package.json +2 -2
  218. package/paketquellen/README.md +11 -11
  219. package/.koolie/core/framework/role-packs/requirements-engineering/skills/role-re-ticket/TESTS.md +0 -22
  220. package/.koolie/core/framework/skills/fw-bugfix-prepare/TESTS.md +0 -15
  221. package/.koolie/core/framework/skills/fw-change-analyze/TESTS.md +0 -16
  222. package/.koolie/core/framework/skills/fw-change-small/TESTS.md +0 -13
  223. package/.koolie/core/framework/skills/fw-code-explain/TESTS.md +0 -11
  224. package/.koolie/core/framework/skills/fw-docs-update/TESTS.md +0 -12
  225. package/.koolie/core/framework/skills/fw-error-analyze/TESTS.md +0 -12
  226. package/.koolie/core/framework/skills/fw-mr-description/TESTS.md +0 -12
  227. package/.koolie/core/framework/skills/fw-overlay-pflege/TESTS.md +0 -13
  228. package/.koolie/core/framework/skills/fw-plan/TESTS.md +0 -14
  229. package/.koolie/core/framework/skills/fw-refactor/TESTS.md +0 -14
  230. package/.koolie/core/framework/skills/fw-repo-analyze/TESTS.md +0 -11
  231. package/.koolie/core/framework/skills/fw-review-support/TESTS.md +0 -13
  232. package/.koolie/core/framework/skills/fw-tests/TESTS.md +0 -12
@@ -3,7 +3,7 @@
3
3
  | Attribut | Wert |
4
4
  |---|---|
5
5
  | ID | `FW-CL-10` |
6
- | Version | `0.1.5` |
6
+ | Version | `0.1.6` |
7
7
  | Status | `pilot` |
8
8
  | Owner (Rolle) | `<FRAMEWORK_OWNER>` |
9
9
  | Wann | bei Übernahme des Frameworks in ein neues Projekt, vor dem Setzen des Overlay-Status auf `aktiv` |
@@ -20,28 +20,28 @@ Stellt sicher, dass ein neues Projekt das Framework vollständig, unverändert i
20
20
  ### Voraussetzungen der Organisation
21
21
 
22
22
  - [ ] **MUSS** Freigabe der KI-Nutzung durch die Organisation liegt vor (Referenz im Overlay Abschnitt 1).
23
- - [ ] **MUSS** Ergebnis der Datenschutz- und Vertragsprüfung liegt vor und ist im Overlay referenziert (K-06; ohne Ergebnis bleibt die restriktivste Auslegung nach `.koolie/core/framework/core/02-privacy.md` Abschnitt 1.3).
24
- - [ ] **MUSS** Planstufe und administrativ erzwungene Team-Einstellungen sind dokumentiert (`.koolie/core/framework/org-policies/`, K-05); Training-Opt-out beziehungsweise vertragliche Regelung nachgewiesen (`<TBD: Nachweis der Einstellung>`).
23
+ - [ ] **MUSS** Ergebnis der Datenschutz- und Vertragsprüfung liegt vor und ist im Overlay referenziert (ohne Ergebnis bleibt die restriktivste Auslegung nach `.koolie/core/framework/core/02-privacy.md` Abschnitt 1.3).
24
+ - [ ] **MUSS** Planstufe und administrativ erzwungene Team-Einstellungen sind dokumentiert (`.koolie/core/framework/org-policies/`); Training-Opt-out beziehungsweise vertragliche Regelung nachgewiesen (`<TBD: Nachweis der Einstellung>`).
25
25
  - [ ] **SOLL** Abbildung des Klassifizierungsschemas der Organisation auf K0–K3 liegt vor (`.koolie/core/framework/org-policies/MAPPING_CLASSIFICATION.md`).
26
26
 
27
27
  ### Technische Integration
28
28
 
29
- - [ ] **MUSS** Framework-Release in das Projekt-Repository integriert: Kernverzeichnis `.koolie/core/` übernommen (D-354) und mit `install.py` Wurzel-Anweisungsdatei und Laufzeitschicht des gewählten Client Packs angelegt; Framework-Version **und gewähltes Client Pack** im Overlay notiert.
29
+ - [ ] **MUSS** Framework-Release in das Projekt-Repository integriert: Kernverzeichnis `.koolie/core/` übernommen und mit `install.py` Wurzel-Anweisungsdatei und Laufzeitschicht des gewählten Client Packs angelegt; Framework-Version **und gewähltes Client Pack** im Overlay notiert.
30
30
  - [ ] **MUSS** Belegte Pfade vor der Erstinstallation geklärt: Bricht `install.py` ab, ist der
31
31
  vorhandene Inhalt nach `ADOPTION_GUIDE.md` Schritt 3a übernommen – nicht gelöscht und
32
32
  nicht überschrieben. Führt das Projekt ein anderes Agenten-Framework, ist die
33
- Zuständigkeit für die Wurzel-Anweisungsdatei ausdrücklich entschieden (K-31).
33
+ Zuständigkeit für die Wurzel-Anweisungsdatei ausdrücklich entschieden.
34
34
  - [ ] **MUSS** Core-Dateien unverändert (Abgleich gegen das Release-Archiv; Änderungsbedarf läuft als Änderungsantrag an den Framework Owner, nie als lokale Änderung).
35
35
  - [ ] **MUSS** `.koolie/project-overlay/OVERLAY.md` vollständig ausgefüllt; sicherheitsrelevante Abschnitte 4, 5, 6, 13, 14, 15 ohne offene `<TBD>`.
36
36
  - [ ] **MUSS** `20-project-overlay.md` in der Regelablage synchron zur Overlay-Datei befüllt (bei Clients mit Zeichenlimit unter 6.000 Zeichen).
37
- - [ ] **MUSS** Berechtigungsdatei mit den Overlay-Werten befüllt (`<ALLOWED_PATHS>`, `<EXCLUDED_PATHS>`, Befehle, CI-/Gate-Pfade); bei einer Berechtigungsdatei im JSON-Format alle Kernregeln aus `_core_rules_integrity` unverändert enthalten (`openai-codex` führt den Block nicht, D-395).
37
+ - [ ] **MUSS** Berechtigungsdatei mit den Overlay-Werten befüllt (`<ALLOWED_PATHS>`, `<EXCLUDED_PATHS>`, Befehle, CI-/Gate-Pfade); bei einer Berechtigungsdatei im JSON-Format alle Kernregeln aus `_core_rules_integrity` unverändert enthalten (`openai-codex` führt den Block nicht).
38
38
  - [ ] **MUSS** `.koolie/project-overlay/overlay-manifest.yaml` gepflegt; eingebundene Dokumente bereinigt und freigegeben; nicht registrierte Dokumente gelten als K3.
39
39
  - [ ] **MUSS** Benötigte Role Packs und Technology Packs aktiviert (Laufzeitfassungen `30-*`, `40-*` erstellt); nicht benötigte nicht geladen.
40
40
  - [ ] **MUSS** `.koolie/project-overlay/forbidden-terms.txt` projektlokal mit den realen Namen des Projekts befüllt (Datei verbleibt projektlokal).
41
41
  - [ ] **MUSS** `python3 .koolie/core/tests/scripts/validate-framework.py
42
42
  --check-overlay-ready` läuft ohne Fehler. **Das ist die Kandidatenprüfung**: Sie
43
43
  erwartet einen Overlay-Status, der noch **nicht** `aktiv` ist, und prüft alles
44
- übrige auf Vollständigkeit (B08, D-57).
44
+ übrige auf Vollständigkeit.
45
45
  - [ ] **MUSS** Nach dem Setzen des Status auf `aktiv`:
46
46
  `python3 .koolie/core/tests/scripts/validate-framework.py --strict-overlay`
47
47
  läuft ohne Fehler. Erst danach beginnt der erste Agentenlauf mit
@@ -49,7 +49,7 @@ Stellt sicher, dass ein neues Projekt das Framework vollständig, unverändert i
49
49
  - [ ] **MUSS** `python3 .koolie/core/install.py --probe` endet ohne fehlende
50
50
  Muss-Kontrolle: Der Schutz-Hook sperrt im Projekt, die Konfiguration lädt, und
51
51
  der Client vertraut dem Projekt, wo das Pack es verlangt. Die Probe braucht kein
52
- Modell (D-488). Warnungen und „unerhoben“ werden gelesen und, wo nötig, im Overlay
52
+ Modell. Warnungen und „unerhoben“ werden gelesen und, wo nötig, im Overlay
53
53
  begründet.
54
54
 
55
55
  ### Organisation im Projekt
@@ -3,7 +3,7 @@
3
3
  | Attribut | Wert |
4
4
  |---|---|
5
5
  | ID | `FW-CL-11` |
6
- | Version | `0.4.3` |
6
+ | Version | `0.5.0` |
7
7
  | Status | `pilot` |
8
8
  | Owner (Rolle) | `<FRAMEWORK_OWNER>` |
9
9
  | Wann | vor jedem Framework-Release (auch Patch-Releases) |
@@ -15,7 +15,7 @@
15
15
 
16
16
  Sichert, dass ein Release konsistent, projektneutral, getestet und für übernehmende Projekte nachvollziehbar ist (`.koolie/core/governance/RELEASE_PROCESS.md`).
17
17
 
18
- Die mit **(ab 1.0.0, D-11)** gekennzeichneten Prüfpunkte gelten erst für das Release 1.0.0 und darüber; sie bilden die Kriterien aus Decision Record D-11 ab (`CR-2026-001`). Pilot, Onboarding und organisatorische Freigabe sind **keine** Prüfpunkte dieser Checkliste – sie liegen projektseitig (`.koolie/core/checklists/10-project-adoption.md`).
18
+ Die mit **(ab 1.0.0)** gekennzeichneten Prüfpunkte gelten für jedes Release ab 1.0.0. Pilot, Onboarding und organisatorische Freigabe sind keine Prüfpunkte dieser Checkliste; sie liegen projektseitig (`.koolie/core/checklists/10-project-adoption.md`).
19
19
 
20
20
  ## Prüfpunkte
21
21
 
@@ -24,11 +24,11 @@ Die mit **(ab 1.0.0, D-11)** gekennzeichneten Prüfpunkte gelten erst für das R
24
24
  - [ ] **MUSS** Alle für das Release vorgesehenen Änderungsanträge sind abgeschlossen oder ausdrücklich verschoben (`.koolie/core/governance/DECISION_LOG.md` aktualisiert).
25
25
  - [ ] **MUSS** Konsistenz Core ↔ Laufzeitfassung geprüft: `.koolie/core/framework/core/*` gegen die Wurzel-Anweisungsdatei und die Regelablage `00-*, 10-*, 15-*` **jedes Client Packs** (Stichproben je geändertem Modul; keine widersprüchlichen Anweisungen).
26
26
  - [ ] **MUSS** Skills konsistent zum Skill-Standard (`.koolie/core/framework/core/08-skill-conventions.md`); Versionen, Status und CHANGELOG je geändertem Skill gepflegt; Deprecations mit Nachfolger dokumentiert.
27
- - [ ] **MUSS** Version je geänderter Checkliste und je geändertem Prompt gepflegt (Metadatentabelle, Semantic Versioning wie in `.koolie/core/governance/RELEASE_PROCESS.md` Abschnitt 1; Testfall `FW-VN-01`). **Ein reiner Statuswechsel ist keine Änderung im Sinne dieses Prüfpunkts** (`.koolie/core/framework/core/01-governance.md` Abschnitt 5 Punkt 5, D-106), weil er keine Anweisung ändert.
27
+ - [ ] **MUSS** Version je geänderter Checkliste und je geändertem Prompt gepflegt (Metadatentabelle, Semantic Versioning wie in `.koolie/core/governance/RELEASE_PROCESS.md` Abschnitt 1; Testfall `FW-VN-01`). Ein reiner Statuswechsel ist keine Änderung im Sinne dieses Prüfpunkts (`.koolie/core/framework/core/01-governance.md` Abschnitt 5 Punkt 5).
28
28
  - [ ] **MUSS** Prioritätshierarchie unverändert oder Änderung begründet und in `.koolie/core/governance/PRIORITY_HIERARCHY.md` nachgezogen.
29
29
  - [ ] **SOLL** Templates, Checklisten und Entscheidungsbäume gegen geänderte Module abgeglichen (Querverweise, Begriffe).
30
- - [ ] **MUSS** Jedes geänderte Dokument gegen die Kriterien seiner Klasse gehalten (`.koolie/core/docs/DOCUMENTATION_STANDARD.md`, D-371); die Prüfungen 91 bis 94 laufen mit dem Validator.
31
- - [ ] **SOLL** Bei einem wesentlich geänderten Dokument der Klasse A (Einstieg) die Kaltleser-Probe gefahren und im Protokoll festgehalten (D-379).
30
+ - [ ] **MUSS** Jedes geänderte Dokument gegen die Kriterien seiner Klasse gehalten (`.koolie/core/docs/DOCUMENTATION_STANDARD.md`); die Prüfungen 91 bis 94 laufen mit dem Validator.
31
+ - [ ] **SOLL** Bei einem wesentlich geänderten Dokument der Klasse A (Einstieg) die Kaltleser-Probe gefahren und im Protokoll festgehalten.
32
32
 
33
33
  ### Projektneutralität
34
34
 
@@ -45,22 +45,22 @@ Die mit **(ab 1.0.0, D-11)** gekennzeichneten Prüfpunkte gelten erst für das R
45
45
  ### Tests
46
46
 
47
47
  - [ ] **MUSS** Testkatalog vollständig ausgeführt (`.koolie/core/tests/TEST_CATALOG.md`): Konsistenz-, Positiv-, Negativ-, Datenschutz-, Prompt-Injection-, Scope-, Fehlende-Informationen-, Zugriffs-, Regressions-, Versions- und Aktualitätstests; Ergebnisse je Test-ID dokumentiert.
48
- - [ ] **MUSS** (ab 1.0.0, D-11) Kein Testfall des Katalogs steht auf Ergebnisstatus `offen`; jeder trägt `bestanden`, `fehlgeschlagen (Referenz)` oder `nicht anwendbar (Begründung)`.
48
+ - [ ] **MUSS** (ab 1.0.0) Kein Testfall des Katalogs steht auf Ergebnisstatus `offen`; jeder trägt `bestanden`, `fehlgeschlagen (Referenz)` oder `nicht anwendbar (Begründung)`.
49
49
  - [ ] **MUSS** Skill-Testfälle (`TESTS.md` je Skill) für alle geänderten Skills erneut ausgeführt.
50
50
  - [ ] **MUSS** Hook- und Validierungsskripte laufen fehlerfrei (Selbsttest der Skripte).
51
- - [ ] **MUSS** Jedes **Abnahmeprotokoll des Testkatalogs** trägt einen Abschnitt *Gegenzeichnung* ohne offenes `<TBD>` (Prüfung 80). **Die Pflicht gilt ausschließlich für diese Protokolle** – Dateiname `JJJJ-MM-TT-FW-<Klasse>-<NN>.md` –, nicht für Arbeits- und Messprotokolle, weil eine Gegenzeichnung eine Abnahme bestätigt und ein Messprotokoll seinen Beleg in sich trägt (D-319, `CR-2026-127` E1). **Ist keine zweite Rolle vorhanden, wird selbst gegengezeichnet und der Abschnitt weist das ausdrücklich als „Selbstgegenzeichnung“ aus** – die Zusage der zweiten Rolle ist damit zurückgenommen, nicht erfüllt.
51
+ - [ ] **MUSS** Jedes Abnahmeprotokoll des Testkatalogs (Dateiname `JJJJ-MM-TT-FW-<Klasse>-<NN>.md`) trägt einen Abschnitt *Gegenzeichnung* ohne offenes `<TBD>` (Prüfung 80). Arbeits- und Messprotokolle brauchen keinen: Sie tragen ihren Beleg in sich. Ist keine zweite Rolle vorhanden, wird selbst gegengezeichnet, und der Abschnitt weist das ausdrücklich als „Selbstgegenzeichnung“ aus.
52
52
  - [ ] **SOLL** Mindestens ein vollständiger Durchlauf des Standardarbeitsablaufs auf dem Übungsrepository (M1 → M2 → M3 → M4) ohne Regelverstoß.
53
53
 
54
54
  ### Abschluss
55
55
 
56
56
  - [ ] **MUSS** `.koolie/core/VERSION` nach Semantic Versioning erhöht; `.koolie/core/CHANGELOG.md` mit Änderungen, Migrationshinweisen für Overlays und bekannten Einschränkungen ergänzt.
57
- - [ ] **MUSS** **Als letzter Eingriff in den Kern, vor dem Release-Commit:** Übernehmende Projekte gehoben – Kern aus dem **Arbeitsbaum** kopiert, beschränkt auf das Verfolgte (D-333), dann `install.py --update` (beides in einem Aufruf mit `--target`, D-362), Overlay-Wert in **drei** Trägern nachgezogen, `validate-framework.py --strict-overlay` dort gefahren **und im übernehmenden Projekt committet** (D-343) – und die Bestandsliste `.koolie/core/governance/ADOPTION_REGISTRY.md` **vorher** auf den Zielstand fortgeschrieben (Prüfung 82). **Ausnahmslos, auch bei einem Patch-Release, das kein ausgeliefertes Artefakt berührt** (D-330), weil das Heben ein Lauf gegen eine fremde Installation ist und findet, was kein Validatorlauf im Framework findet.
58
- - [ ] **MUSS** **Vor dem Release-Commit:** Erzeugnisse der Lieferung gebaut – Hauptdokument und Word-Fassung **je Client Pack** – und **im Erzeugnis nachgezählt** (D-332). Keine Prüfung erreicht sie, weil sie unter `build/out/` liegen und in der `.gitignore` stehen (`K-110`).
59
- - [ ] **MUSS** Freigabe des Releases durch den Framework Owner dokumentiert – **in der Nachricht der signierten Marke** (`RELEASE_PROCESS.md` Abschnitt 4.1 Schritt 4). **Die Marke trägt die Unterschrift, der Release-Commit nicht** (D-334); deshalb setzt sie der Mensch und nicht ein Werkzeug. Keine Prüfung erreicht den Markentext – er liegt im Tag-Objekt, nicht im Arbeitsbaum (`K-111`).
60
- - [ ] **MUSS** **Nach dem Release-Commit:** Release-Archiv aus der signierten Marke erzeugt, **im Erzeugnis nachgezählt** und samt Prüfsumme außerhalb des Repositoriums abgelegt; Mitteilung mit Migrationshinweisen und betroffenen Overlay-Feldern an die übernehmenden Projekte. **Das Archiv kann vor dem Commit nicht erzeugt werden** – es entsteht aus der Marke, und die sitzt auf dem Release-Commit (D-329). Ablauf: `.koolie/core/governance/RELEASE_PROCESS.md` Abschnitt 4.1 Schritte 5 bis 7.
61
- - [ ] **MUSS** (ab 1.0.0, D-11) Alle Core-Module, Skills und Packs tragen einen Status oberhalb von `entwurf`; die Statuszeile jedes Modulträgers setzt Prüfung 47 durch (D-105).
62
- - [ ] **MUSS** (ab 1.0.0, D-11) Kein Decision Record in `.koolie/core/governance/DECISION_LOG.md` trägt den Status `entschieden (Vorschlag)`.
63
- - [ ] **MUSS** (ab 1.0.0, D-11) Übernahme in mindestens ein zweites Projekt nach `.koolie/core/checklists/10-project-adoption.md` nachgewiesen.
57
+ - [ ] **MUSS** Als letzter Eingriff in den Kern, vor dem Release-Commit: Bestandsliste `.koolie/core/governance/ADOPTION_REGISTRY.md` auf den Zielstand fortgeschrieben (Prüfung 82), dann übernehmende Projekte gehoben – `install.py --target <projekt> --update` aus dem Arbeitsbaum, Overlay-Wert in den drei Trägern nachgezogen, `validate-framework.py --strict-overlay` dort gefahren und die Hebung im übernehmenden Projekt committet. Ausnahmslos, auch bei einem Patch-Release ohne berührtes Artefakt (`RELEASE_PROCESS.md` Abschnitt 4.1 Schritte 1 und 2).
58
+ - [ ] **MUSS** Vor dem Release-Commit: Hauptdokument und Word-Fassung je Client Pack gebaut und im Erzeugnis nachgezählt. Keine Prüfung erreicht sie, weil sie unter `build/out/` liegen.
59
+ - [ ] **MUSS** Freigabe des Releases durch den Framework Owner in der Nachricht der signierten Marke dokumentiert (`RELEASE_PROCESS.md` Abschnitt 4.1 Schritt 4). Die Marke trägt die Unterschrift, deshalb setzt sie der Mensch. Keine Prüfung erreicht den Markentext.
60
+ - [ ] **MUSS** Nach dem Release-Commit: Release-Archiv aus der signierten Marke erzeugt, im Erzeugnis nachgezählt und samt Prüfsumme außerhalb des Repositoriums abgelegt; Mitteilung mit Migrationshinweisen und betroffenen Overlay-Feldern an die übernehmenden Projekte (`.koolie/core/governance/RELEASE_PROCESS.md` Abschnitt 4.1 Schritte 5 bis 7).
61
+ - [ ] **MUSS** (ab 1.0.0) Alle Core-Module, Skills und Packs tragen einen Status oberhalb von `entwurf`; die Statuszeile jedes Modulträgers setzt Prüfung 47 durch.
62
+ - [ ] **MUSS** (ab 1.0.0) Kein Decision Record in `.koolie/core/governance/DECISION_LOG.md` trägt den Status `entschieden (Vorschlag)`.
63
+ - [ ] **MUSS** (ab 1.0.0) Übernahme in mindestens ein zweites Projekt nach `.koolie/core/checklists/10-project-adoption.md` nachgewiesen.
64
64
 
65
65
  ## Abbruch- und Eskalationskriterien
66
66
 
@@ -161,7 +161,7 @@ def lieferumfang(kern: str) -> str:
161
161
  # * allowed-tools: ein Verb ohne Abbildung wurde WOERTLICH durchgereicht. Aus
162
162
  # 'allowed-tools: banane' wurde in der installierten Fassung der Werkzeugname
163
163
  # 'banane'; aus einer geleerten Abbildung wurde 'tools: read, grep, glob' im
164
- # Agentenprofil fw-reviewer - drei Namen, die dieser Client nicht kennt (M16).
164
+ # Agentenprofil koolie-reviewer - drei Namen, die dieser Client nicht kennt (M16).
165
165
  # * permissions.deny: dasselbe Verb fiel lautlos ganz aus. 'deny: glob' erzeugte
166
166
  # keine Werkzeugsperre, und der Validator meldete 0 Fehler (M6).
167
167
  # Die drei uebrigen Werkzeugabbildungen desselben Manifests - hook_tools,
@@ -293,7 +293,7 @@ def _regel_rendern(regel: dict, man: dict, korb: str) -> list[str]:
293
293
  elif verb == "skill":
294
294
  # Ein Aufrufname, kein Pfad: weder Wurzelpraefix noch Praefixzeichen, und
295
295
  # keine Musterausweitung. Gemessen am 2026-09-14 (D-82): Das Argument wird
296
- # woertlich verglichen - Skill(fw-*) laesst den Aufruf von fw-code-explain
296
+ # woertlich verglichen - Skill(koolie-*) laesst den Aufruf von koolie-code-explain
297
297
  # NICHT durch. Wer hier ein Muster erzeugte, erzeugte eine Freigabe, die
298
298
  # lautlos nichts freigibt - der Befundtyp von D-66, mit umgekehrtem
299
299
  # Vorzeichen.
@@ -4,97 +4,98 @@
4
4
  |---|---|
5
5
  | Modul-ID | `FW-CLIENT-PACKS` |
6
6
  | Ebene | keine – Querschnittsschicht (siehe Abschnitt 2) |
7
- | Version | 0.9.0 |
7
+ | Version | 0.10.0 |
8
8
  | Status | pilot |
9
9
  | Owner (Rolle) | `<FRAMEWORK_OWNER>` |
10
10
 
11
11
  ## 1. Zweck
12
12
 
13
- Das Framework trennt seit D-02 zwei Formen derselben Regeln: die kanonische, **werkzeugneutrale** Langform in `.koolie/core/framework/` und die kompakte **Laufzeitform** in der Wurzel des Projekts. Die Laufzeitform ist an den KI-Client gebunden, der sie lädt.
13
+ Koolie führt jede Regel in zwei Formen: als werkzeugneutrale Langform unter `.koolie/core/framework/` und als kompakte Laufzeitform in der Wurzel des Projekts. Die Laufzeitform gehört zu dem KI-Client, der sie lädt. Ein **Client Pack** beschreibt diese Bindung für genau einen Client und beantwortet zwei Fragen:
14
14
 
15
- Ein **Client Pack** macht diese Bindung explizit und austauschbar. Es beantwortet für genau einen Client zwei Fragen:
15
+ 1. **Wohin** gehören Anweisungsdatei, Regeln, Skills, Berechtigungen, Hooks und Agentenprofile?
16
+ 2. **Welche Zusagen setzt dieser Client technisch durch** – und welche bleiben eine Anweisung, der das Modell folgen kann oder nicht?
16
17
 
17
- 1. **Wohin** gehören die Laufzeitartefakte – Wurzel-Anweisungsdatei, Regeldateien, Skills, Berechtigungen, Hooks, Subagentenprofile?
18
- 2. **Welche Zusagen des Frameworks setzt dieser Client technisch durch** – und welche bleiben eine Anweisung, der das Modell folgen kann oder auch nicht?
19
-
20
- Die zweite Frage ist der eigentliche Grund für diese Schicht. Ein Framework, dessen Datenschutz- und Sicherheitszusagen bei einem Client von der Engine erzwungen werden und bei einem anderen nur als Prosa im Prompt stehen, muss diesen Unterschied sichtbar machen. Sonst erzeugt es falsche Sicherheit – genau dort, wo es am meisten schadet.
18
+ Die zweite Frage ist der Kern. Dieselbe Datenschutzregel kann bei einem Client von der Engine erzwungen werden und beim anderen nur als Text im Prompt stehen. Das Pack macht diesen Unterschied sichtbar, damit keine falsche Sicherheit entsteht.
21
19
 
22
20
  ## 2. Ein Client Pack ist keine Regelebene
23
21
 
24
- Die Prioritätshierarchie (`.koolie/core/governance/PRIORITY_HIERARCHY.md`, D-06) bleibt achtstufig und **unverändert**. Ein Client Pack
25
-
26
- - führt **keine** neuen Verhaltensregeln ein,
27
- - **lockert** keine bestehende Regel,
28
- - und steht in keiner Konfliktbeziehung zu Core, Overlay oder Packs.
29
-
30
- Es ist eine **Abbildungsschicht**: Es übersetzt die Ebenen 3 bis 7 in die Artefakte eines konkreten Clients und dokumentiert die Durchsetzungstiefe. Entsteht ein Widerspruch zwischen einem Client Pack und der Langform, gilt die Langform; das Client Pack wird korrigiert.
22
+ Die Prioritätshierarchie (`.koolie/core/governance/PRIORITY_HIERARCHY.md`) bleibt unverändert. Ein Client Pack führt keine neue Regel ein, lockert keine bestehende und steht in keinem Konflikt mit Core, Overlay oder Packs. Es übersetzt die Ebenen 3 bis 7 in die Dateien eines Clients und dokumentiert, wie tief sie durchgesetzt werden. Widerspricht ein Pack der Langform, gilt die Langform, und das Pack wird korrigiert.
31
23
 
32
24
  ## 3. Bestandteile
33
25
 
34
26
  | Bestandteil | Inhalt |
35
27
  |---|---|
36
- | `CLIENT_PACK.md` | Pfadabbildung, **Semantikabbildung**, **Fähigkeitsmatrix**, Abweichungen, Belegstatus – die menschenlesbare Fassung |
37
- | `manifest.json` | Dieselben Abbildungen maschinenlesbar; `install.py` und `validate-framework.py` lesen sie. **Ohne Manifest ist ein Pack nicht installierbar** |
38
- | `root-template/` | Nur die Artefakte, die tatsächlich clientspezifisch sind: **eine** erklärende README der Laufzeitschicht je Pack (D-36) |
28
+ | `CLIENT_PACK.md` | Pfadabbildung, Semantikabbildung, **Fähigkeitsmatrix**, Abweichungen, Belegstand – für Menschen |
29
+ | `manifest.json` | dieselben Abbildungen maschinenlesbar für `install.py` und den Validator. Ohne Manifest ist ein Pack nicht installierbar |
30
+ | `root-template/` | nur die erklärende README der Laufzeitschicht |
39
31
 
40
- **Die Vorlage `_template/` trägt von diesen drei Bestandteilen genau einen: `CLIENT_PACK.md`.** Sie ist damit kein Pack, und die Packmenge der Prüfungen nimmt sie ausdrücklich nicht auf (D-336). **Prüfung 84** hält fest, dass die Vorlage eine Vorlage bleibt.
32
+ Die Vorlage `_template/` enthält nur `CLIENT_PACK.md` und ist damit kein Pack; Prüfung 84 hält das fest.
41
33
 
42
- Alles andere liegt einmal im Kern und wird bei der Installation in die Form dieses Clients gebracht: Regeltexte, Wurzel-Anweisung, Agentenprofil, Skills, Overlay-Laufzeitregel und die beiden Vorlagen als **Formtransformation** (D-16, D-17, D-20), Berechtigungen und Hooks als **Semantikabbildung** (D-18). `seed_paths` ist in allen Packs leer – die gesamte Saat kommt aus dem Kern. Der Unterschied ist wesentlich: Bei einer Formtransformation ist der Inhalt derselbe und nur die Schreibweise anders. Bei der Semantikabbildung unterscheiden sich die Werkzeuge selbst – ein Client trennt Ändern und Anlegen, ein anderer nicht; ein Befehlsverbot greift hier wörtlich und dort über ein Präfix. Weil an genau diesen Regeln die Kernzusagen hängen, prüft die Abbildung drei Eigenschaften und bricht ab, wenn eine verletzt ist:
34
+ Alles andere liegt einmal im Kern und wird bei der Installation in die Form des Clients gebracht:
43
35
 
44
- | Zusicherung | Warum |
36
+ - **Formtransformation** – gleicher Inhalt, andere Schreibweise: Regeltexte, Wurzel-Anweisung, Agentenprofil, Skills, Overlay-Laufzeitregel, Vorlagen.
37
+ - **Semantikabbildung** – andere Werkzeuge: Berechtigungen und Hooks. Ein Client trennt Ändern und Anlegen, ein anderer nicht; ein Befehlsverbot greift hier wörtlich, dort über ein Präfix.
38
+
39
+ Weil an der Semantikabbildung die Kernzusagen hängen, bricht die Installation ab, wenn eine dieser Bedingungen verletzt ist:
40
+
41
+ | Bedingung | Grund |
45
42
  |---|---|
46
- | Keine `deny`- oder `ask`-Regel ohne Zielwerkzeug | Sie wegzulassen wäre eine Lockerung. Bei `allow` ist Weglassen zulässig – es fällt auf den strengeren Standard zurück |
47
- | Die Präfixform eines Befehlsverbots muss ein Präfix der wörtlichen Form sein | Damit ist sie nachweislich mindestens so breit; die Abweichung ist belegbar eine Verschärfung |
48
- | Bei `allow` müssen beide Formen übereinstimmen | Dort wäre jede Verbreiterung eine Lockerung |
43
+ | Jede `deny`- und `ask`-Regel hat ein Zielwerkzeug | Eine weggelassene Sperre wäre eine Lockerung. Bei `allow` ist Weglassen erlaubt, es gilt dann der strengere Standard |
44
+ | Die Präfixform eines Befehlsverbots ist ein Präfix der wörtlichen Form | So ist sie mindestens so breit wie das Original |
45
+ | Bei `allow` stimmen beide Formen überein | Jede Verbreiterung wäre eine Lockerung |
49
46
 
50
47
  ## 4. Die Fähigkeitsmatrix
51
48
 
52
- Kern jedes Client Packs. Sie stuft jede technische Zusage des Frameworks in eine von drei Klassen ein:
49
+ Jedes Pack stuft jede technische Zusage von Koolie in eine von drei Klassen ein:
53
50
 
54
51
  | Klasse | Bedeutung |
55
52
  |---|---|
56
- | `[TECHNISCH]` | Der Client erzwingt die Zusage. Ein Verstoß ist nicht möglich, **unabhängig vom Modellverhalten** – nicht notwendig unabhängig vom **Betriebsmodus**. Die Abhängigkeit vom Betriebsmodus weist der B-Block des jeweiligen Packs in einer Vorbemerkung aus; sie ist dort Pflicht (D-35). |
57
- | `[TEXTUELL]` | Die Zusage steht als Anweisung im Kontext. Ein Modell kann ihr folgen; erzwungen ist sie nicht. |
58
- | `[NICHT ABBILDBAR]` | Der Client bietet keinen Mechanismus. Die Zusage entfällt für diesen Client. |
59
-
60
- **Kernzusage** im Sinne dieses Abschnitts ist **jede Zeile des B-Blocks mit `Kern = ja`** sowie **jede Regel aus `_core_rules_integrity`** der Berechtigungsdatei. Zusagen der übrigen Blöcke sind **Fähigkeitszusagen**: Ihr Ausfall wird im Pack begründet und im Overlay des aufnehmenden Projekts als bekannte Einschränkung geführt, sperrt die Inbetriebnahme aber nicht.
53
+ | `[TECHNISCH]` | Der Client erzwingt die Zusage, unabhängig vom Verhalten des Modells – nicht unbedingt unabhängig vom Betriebsmodus. Wovon sie im Betriebsmodus abhängt, sagt die Vorbemerkung des B-Blocks; sie ist Pflicht. |
54
+ | `[TEXTUELL]` | Die Zusage steht als Anweisung im Kontext. Das Modell kann ihr folgen; erzwungen ist sie nicht. |
55
+ | `[NICHT ABBILDBAR]` | Der Client bietet keinen Mechanismus; die Zusage entfällt für ihn. |
61
56
 
62
- Die Unterscheidung ist nicht redaktionell. **Eine Kernzusage sagt zu, dass etwas verhindert wird; eine Fähigkeitszusage sagt zu, dass etwas möglich ist** – zum Beispiel, dass man nachsehen kann. Fällt das Erste aus, fehlt eine Schranke. Fällt das Zweite aus, fehlt Sicht. Beides ist ernst, nur das Erste sperrt (`CR-2026-041`, D-41).
57
+ **Kernzusagen** sind die Zeilen des B-Blocks mit `Kern = ja` und jede Regel aus `_core_rules_integrity` der Berechtigungsdatei. Sie sagen zu, dass etwas **verhindert** wird. Alle übrigen Zeilen sind **Fähigkeitszusagen**: Sie sagen zu, dass etwas **möglich** ist, etwa nachzusehen. Fällt eine Kernzusage aus, fehlt eine Schranke; fällt eine Fähigkeitszusage aus, fehlt Sicht. Nur das Erste sperrt die Inbetriebnahme.
63
58
 
64
- **Verbindliche Folgen:**
59
+ Daraus folgt:
65
60
 
66
- - Eine Kernzusage aus `_core_rules_integrity` in der Berechtigungsdatei, die ein Client nicht `[TECHNISCH]` abbildet, MUSS im Client Pack begründet und im Overlay des aufnehmenden Projekts als dokumentierte Ausnahme geführt werden (`.koolie/project-overlay/exceptions/EXCEPTIONS.md`).
67
- - Ein Client Pack, das eine Kernzusage auf `[NICHT ABBILDBAR]` setzt, DARF nicht ohne Freigabe durch `<SECURITY_CONTACT>` in Betrieb genommen werden.
68
- - Eine **Fähigkeitszusage** auf `[NICHT ABBILDBAR]` MUSS in derselben Zeile den Ersatz benennen – oder ausdrücklich festhalten, dass es keinen gibt. Ein Ausfall, der nur eingetragen und nicht ersetzt wird, ist eine stillschweigende Verschlechterung. Prüfung 25 meldet eine Zeile, die das unterlässt.
69
- - Die Einstufung `[TECHNISCH]` MUSS gegen eine reale Installation belegt sein. Bis dahin sagt die Belegzelle `BELEG OFFEN` **mit Grund und Datum** – und, wenn die Frage länger offen bleibt, mit ihrem Klärungspunkt. **Ein Belegstand trägt keine Frist:** Er sagt, was heute belegt ist, nicht, bis wann es belegt sein muss (`CR-2026-121`, D-291).
70
- - **Eine mit `[DOK]` belegte Matrixzeile MUSS im Belegkopf die Quellenkennung der Liste in Anhang 31.4 nennen** (`QC-n`/`QD-n`). Belegkopf ist die Zelle bis zum ersten Satzbruch; was danach steht, ist Erläuterung, und eine Marke dort ist eine **Nennung** und kein Beleg (D-265). Ein Seitenpfad darf danebenstehen, trägt aber nicht – allein die Kennung lässt sich gegen die Liste halten (D-266). Ein Verweisbeleg (*„wie B3"*) erbt die Kennung seines Ziels. **Gibt der Bestand für eine Zeile keine Seite her, sagt sie `QUELLE NICHT ZUGEORDNET` mit Grund und Datum** – geraten wird nicht, *eine geratene Zuordnung sähe wie ein Beleg aus* (D-156, D-263). **Prüfung 73 setzt es durch.**
71
- - **Die Marke `[DOK]` belegt gegen die Herstellerdokumentation.** Ein Nachweis des Frameworks über sich selbst – ein Manifestfeld, eine erzeugte Datei – trägt sie nicht und wird als das benannt, was er ist (D-267).
72
- - **Eine Matrixzeile steht in ihrer Tabelle.** Zwischen ihr und der Trennzeile liegt keine Leerzeile und kein Fremdtext; sonst rendert Markdown sie als Absatz, während die Zusammenfassung des Packs sie weiterzählt (D-264, **Prüfung 74**).
61
+ - Eine Kernzusage, die ein Client nicht `[TECHNISCH]` abbildet, MUSS im Pack begründet und im Overlay des Projekts als Ausnahme geführt werden (`.koolie/project-overlay/exceptions/EXCEPTIONS.md`).
62
+ - Ein Pack mit einer Kernzusage auf `[NICHT ABBILDBAR]` DARF nur mit Freigabe durch `<SECURITY_CONTACT>` in Betrieb gehen.
63
+ - Eine Fähigkeitszusage auf `[NICHT ABBILDBAR]` MUSS in ihrer Zeile den Ersatz nennen oder festhalten, dass es keinen gibt (Prüfung 25).
64
+ - `[TECHNISCH]` MUSS an einer realen Installation belegt sein. Bis dahin sagt die Belegzelle `BELEG OFFEN` mit Grund und Datum. Ein Belegstand hat keine Frist: Er sagt, was heute belegt ist.
65
+ - Eine Zeile mit `[DOK]` nennt im Belegkopf – der Zelle bis zum ersten Satzbruch – die Kennung ihrer Quelle aus Anhang 31.4 (`QC-n`, `QD-n` …). Ein Verweis wie *„wie B3"* erbt die Kennung seines Ziels. Gibt es keine Quelle, steht `QUELLE NICHT ZUGEORDNET` mit Grund und Datum; geraten wird nicht (Prüfung 73).
66
+ - `[DOK]` belegt gegen die Dokumentation des Herstellers. Ein Nachweis von Koolie über sich selbst – ein Manifestfeld, eine erzeugte Datei – trägt die Marke nicht.
67
+ - Eine Matrixzeile steht in ihrer Tabelle, ohne Leerzeile oder Fremdtext davor (Prüfung 74).
73
68
 
74
- Die Delegationsverbote V1 bis V12 (`.koolie/core/framework/core/09-risk-model.md`) sind davon ausgenommen: Sie beschreiben Aufgaben, die nicht delegiert werden dürfen, und sind ihrer Natur nach organisatorisch. Kein Client setzt sie technisch durch; sie sind bei jedem Client `[TEXTUELL]`.
69
+ Die Delegationsverbote V1 bis V12 (`.koolie/core/framework/core/09-risk-model.md`) sind ausgenommen. Sie betreffen Aufgaben, nicht Werkzeuge, und sind bei jedem Client `[TEXTUELL]`.
75
70
 
76
71
  ## 5. Ein Client Pack erstellen
77
72
 
78
- 1. `_template/CLIENT_PACK.md` nach `<client-name>/` kopieren und alle Platzhalter ersetzen. **Die Vorlage trägt nur diesen einen Bestandteil, und das ist eine Entscheidung, keine Lücke (D-336):** `manifest.json` (Schritt 5) und `root-template/` (Schritt 4) entstehen in ihren eigenen Schritten – eine vollständige Vorlage wäre ein Pack ohne Client, und jede Prüfung müsste sie einzeln ausnehmen. `_client_packs()` nimmt die Vorlage nicht in die Packmenge auf, und Prüfung 84 hält fest, dass sie keine Packbestandteile trägt.
79
- 2. Pfadabbildung eintragen: Wo erwartet dieser Client Anweisungsdatei, Regeln, Skills, Berechtigungen, Hooks?
80
- 3. Fähigkeitsmatrix ausfüllen. Jede Zeile ohne Beleg sagt `BELEG OFFEN` mit Grund und Datum. Der B-Block trägt die **Vorbemerkung zur Betriebsmodus-Abhängigkeit** von `[TECHNISCH]`, ergänzt um den eigenen Belegstand (D-35). Keine Prüfung meldet ihr Fehlen – sie ist eine Anweisung, und das ist hier bewusst so entschieden (`CR-2026-033` E4).
81
- 4. `root-template/` anlegen: **nur die erklärende README der Laufzeitschicht**. Die Wurzelartefakte selbst kommen aus dem Kern und werden bei der Installation in die Form dieses Clients gebracht – `seed_paths` bleibt leer (D-20, `CR-2026-010`).
82
- 5. `manifest.json` anlegen: Pflichtfelder `client`, `skills_dir`, `pack_runtime_dir`, `core_skill_prefix`, `core_paths`, `seed_paths`; zusätzlich `runtime_dir`, `root_instruction_file`, `permissions_file`, `agents_dir`, `has_rule_triggers`. Kennt der Client eine **eigene** Bedingungssprache für Regeldateien, kommt `rule_triggers` dazu: Es bildet jeden Ladetrigger der Kernquelle auf sie ab. Ein Ladetrigger ohne Eintrag lässt die Installation scheitern – ersatzloses Verwerfen wäre ein Verlust der Zusage (D-26, D-27).
83
- 6. Semantikabbildung eintragen: `permission_tools`, `permission_tools_bare`, `permission_path_prefix`, `permission_exec_match` und gegebenenfalls `permission_exec_suffix`, `permissions_extra`, `permissions_note`; für die Hooks `hook_tools` und `hook_project_dir_var`. **`hook_tools` führt jedes Werkzeugverb, das die Hook-Quelle nennt**, auch `search`. Kennt der Client kein Werkzeug einer Klasse, wird die Abwesenheit in `hook_tools_absent` **ausdrücklich erklärt**, samt `_hook_tools_absent_note`; eine leere Liste allein bricht die Abbildung ab, und Prüfung 26 verlangt, dass ein so erklärtes Verb auch in `permission_tools` leer ist. **Verwirft das Pack ein zusagentragendes Frontmatter-Feld eines Skills** (`permissions`, `triggers`) über `skill_frontmatter.drop_fields`, muss es den Ersatz benennen – `skill_permissions_ersatz` beziehungsweise `model_invocation_field`; sonst bricht die Installation ab und Prüfung 27 meldet es (D-47, D-50). **Kennt der Client ein Werkzeug, mit dem ein Unteragent gestartet wird, führt `agent_start_tools` seine Namen** – alle Schreibweisen, die der Client annimmt, und gemessen, nicht angenommen. Kennt er keines oder ist es unerhoben, wird die Abwesenheit in `agent_start_tools_absent` **ausdrücklich erklärt**, samt `_agent_start_tools_absent_note`; Prüfung 34 verlangt eines von beidem und lässt ein Pack, das Zeile **A1** auf `[TECHNISCH]` stellt, nicht mit einer Erklärung davonkommen (D-70). **Und `skill_frontmatter.tool_names` wie `agent_frontmatter.tool_names` führen jedes Verb des Frontmatter-Vokabulars** (`read`, `grep`, `glob`, `edit`, `exec`; die Liste steht in `clientmap.FRONTMATTER_VERBEN`). **Führt der Client für das Frontmatter ein eigenes Vokabular, das mit seinen Laufzeit-Werkzeugnamen nicht übereinstimmt, sagt das Pack es in `tool_names_namespace` samt `_tool_names_note`** – Prüfung 38 setzt ihre Richtungsregel dann aus, weil sie sonst zwei Namensräume vergliche (D-88, gemessen bei `devin-desktop`: `glob` wird im Frontmatter angenommen, `find_file_by_name` verworfen, und zur Laufzeit ist es umgekehrt). Bildet der Client ein Verb nicht ab – weil er die Verben selbst als Werkzeugnamen führt oder weil es unerhoben ist –, gehört es in `tool_names_unmapped` samt `_tool_names_unmapped_note`; eine Lücke allein ist keine Aussage (D-78). Prüfung 38 verlangt eines von beidem und hält zugleich die **Richtung** fest: `hook_tools` darf für kein Verbpaar enger sein als `tool_names` – sonst bekäme ein Skill ein Werkzeug vorab freigegeben, das seine eigene Sperre nicht erfasst (D-80). Kennt der Client keine eigene Hook-Datei, zeigt `<HOOKS_FILE>` auf dieselbe Datei wie `<PERMISSIONS_FILE>` – daran wird die Einbettung erkannt. `<CORE_DIR>` wird **nicht** belegt; den setzt die Installation.
84
- 7. **Anweisungs- und Konfigurationsquellen außerhalb des Projekts erheben und eintragen.** Der gleichnamige Abschnitt des Packs führt je bekannter Quelle eine Zeile – Pfad, Ladebedingung, Belegstatus, Maßnahme – **oder** einen datierten Abwesenheitsbeleg samt Erhebungsweg („keine bekannt, Stand `<JJJJ-MM-TT>`, erhoben mit `<Kommando>`"). Er umfasst Regeltexte, Skills und Agentenprofile ebenso wie Berechtigungen, Hooks und Einstellungen (D-34, D-37). Prüfung 19 meldet ein Pack ohne diesen Abschnitt; sie prüft seine **Anwesenheit**, nicht seine Richtigkeit. Kennt der Client eine Importsteuerung für fremde Werkzeugformate, wird sie gesetzt und in Zeile R6 ausgewiesen – abschalten statt nur ausweisen.
85
- 8. Pack in dieser Datei und in `.koolie/core/OWNERS.md` eintragen.
86
- 9. Probeinstallation in ein leeres Verzeichnis; Validator dagegen ausführen; Testkatalog-Basistests gegen eine Installation des Clients fahren.
73
+ 1. `_template/CLIENT_PACK.md` nach `<client-name>/` kopieren und alle Platzhalter ersetzen. `manifest.json` und `root-template/` entstehen in eigenen Schritten.
74
+ 2. **Pfadabbildung** eintragen: Wo erwartet der Client Anweisungsdatei, Regeln, Skills, Berechtigungen und Hooks?
75
+ 3. **Fähigkeitsmatrix** ausfüllen. Jede Zeile ohne Beleg sagt `BELEG OFFEN` mit Grund und Datum. Der B-Block bekommt die Vorbemerkung zur Abhängigkeit vom Betriebsmodus, mit eigenem Belegstand. Keine Prüfung meldet, wenn sie fehlt.
76
+ 4. **`root-template/`** anlegen, mit nichts als der erklärenden README der Laufzeitschicht. Alles andere kommt aus dem Kern; `seed_paths` bleibt leer.
77
+ 5. **`manifest.json`** anlegen. Pflicht sind `client`, `skills_dir`, `pack_runtime_dir`, `core_skill_prefix` (`koolie-`), `core_paths` und `seed_paths`; dazu kommen `runtime_dir`, `root_instruction_file`, `permissions_file`, `agents_dir` und `has_rule_triggers`. Kennt der Client eine eigene Bedingungssprache für Regeldateien, bildet `rule_triggers` jeden Ladetrigger des Kerns darauf ab – ein Trigger ohne Eintrag lässt die Installation scheitern.
78
+ 6. **Semantikabbildung** eintragen:
79
+ - **Berechtigungen:** `permission_tools`, `permission_tools_bare`, `permission_path_prefix`, `permission_exec_match`, bei Bedarf `permission_exec_suffix`, `permissions_extra` und `permissions_note`.
80
+ - **Hooks:** `hook_tools` mit jedem Werkzeugverb der Hook-Quelle, auch `search`, und `hook_project_dir_var`. Hat der Client für ein Verb kein Werkzeug, steht das in `hook_tools_absent` samt `_hook_tools_absent_note`; dann ist das Verb auch in `permission_tools` leer (Prüfung 26). Hat der Client keine eigene Hook-Datei, zeigt `<HOOKS_FILE>` auf dieselbe Datei wie `<PERMISSIONS_FILE>`.
81
+ - **Skill-Frontmatter:** Verwirft das Pack ein zusagentragendes Feld (`permissions`, `triggers`) über `skill_frontmatter.drop_fields`, nennt es den Ersatz in `skill_permissions_ersatz` beziehungsweise `model_invocation_field` (Prüfung 27).
82
+ - **Unteragenten:** `agent_start_tools` führt jede Schreibweise des Werkzeugs, das einen Unteragenten startet – gemessen, nicht angenommen. Gibt es keines oder ist es unerhoben, steht das in `agent_start_tools_absent` samt Notiz. Eine Zeile **A1** auf `[TECHNISCH]` braucht das Werkzeug (Prüfung 34).
83
+ - **Werkzeugnamen im Frontmatter:** `skill_frontmatter.tool_names` und `agent_frontmatter.tool_names` führen jedes Verb aus `clientmap.FRONTMATTER_VERBEN` (`read`, `grep`, `glob`, `edit`, `exec`). Ein Verb, das der Client nicht abbildet, steht in `tool_names_unmapped` samt Notiz. Hat der Client für das Frontmatter einen eigenen Namensraum, sagt das `tool_names_namespace` samt `_tool_names_note`. `hook_tools` darf für kein Verb enger sein als `tool_names` – sonst wäre ein Werkzeug vorab freigegeben, das die Sperre nicht erfasst (Prüfung 38).
84
+ - `<CORE_DIR>` bleibt unbelegt; den setzt die Installation.
85
+ 7. **Quellen außerhalb des Projekts** eintragen: je bekannter Quelle eine Zeile mit Pfad, Ladebedingung, Belegstand und Maßnahme – oder ein datierter Abwesenheitsbeleg mit Erhebungsweg (*„keine bekannt, Stand `<JJJJ-MM-TT>`, erhoben mit `<Kommando>`"*). Gemeint sind Regeltexte, Skills und Agentenprofile ebenso wie Berechtigungen, Hooks und Einstellungen; Prüfung 19 verlangt den Abschnitt. Kennt der Client eine Importsteuerung für fremde Formate, wird sie abgeschaltet und in Zeile R6 ausgewiesen.
86
+ 8. Das Pack in dieser Datei und in `.koolie/core/OWNERS.md` eintragen.
87
+ 9. In ein leeres Verzeichnis installieren, den Validator laufen lassen und die Basistests des Testkatalogs gegen eine Installation des Clients fahren.
87
88
 
88
89
  ## 6. Verfügbare Client Packs
89
90
 
90
- > **Die Spalte `[TECHNISCH]` wird von Prüfung 31 aus der Fähigkeitsmatrix des jeweiligen Packs nachgerechnet** (D-71): Eine Zahl mit eindeutiger Grenze gehört ausgerechnet, nicht an zweiter Stelle gepflegt.
91
+ > Die Spalte `[TECHNISCH]` rechnet Prüfung 31 aus der Fähigkeitsmatrix des Packs nach.
91
92
 
92
93
  | Pack | Code | Status | `[TECHNISCH]` | Kernzusagen | Fähigkeitsmatrix belegt |
93
94
  |---|---|---|---|---|---|
94
- | `devin-desktop` | `CP-DD` | pilot | 21 von 36 | 6 von 6 | An einer Installation gemessen sind unter anderem `S3`, `B3`, `B10`, `A1` (`CR-2026-120`), `H1`, `H2`, `R5`, `R6` und `S5`. Genau eine Zeile sagt `BELEG OFFEN`, und dauerhaft: `X2` (`K-20`). ⚠️ **Die Einstufungen `[TECHNISCH]` des B-Blocks gelten nicht im Betriebsmodus `dangerous`** – dort trägt der Schutz-Hook (D-281); die Vorbemerkung des Blocks sagt es |
95
+ | `devin-desktop` | `CP-DD` | pilot | 21 von 36 | 6 von 6 | An einer Installation gemessen sind unter anderem `S3`, `B3`, `B10`, `A1`, `H1`, `H2`, `R5`, `R6` und `S5`. Genau eine Zeile sagt `BELEG OFFEN`, und dauerhaft: `X2`. ⚠️ **Die Einstufungen `[TECHNISCH]` des B-Blocks gelten nicht im Betriebsmodus `dangerous`** – dort trägt der Schutz-Hook; die Vorbemerkung des Blocks sagt es |
95
96
  | `openai-codex` | `CP-OC` | pilot | 10 von 35 | **4 von 6** | Alle Belege stammen aus Messungen am Client, keiner aus seiner Dokumentation – das Pack trägt keine `[DOK]`-Zeile, und `FW-AK-01` ist für diesen Client nicht gefahren. Gemessen an einer realen Installation sind `B2`, `B4`, `B6`, `H1` bis `H3`, `R1`, `R5`, `S1` und `S5`; vier Zeilen sagen `BELEG OFFEN` (`S2`, `S3`, `M3`, `M4`), dazu `X2` dauerhaft. 🔴 **Zwei Kernzusagen sind `[NICHT ABBILDBAR]`** – `B3` und `B5` –, und damit greift Abschnitt 4 dieser Datei vollständig: **keine Inbetriebnahme ohne Freigabe durch `<SECURITY_CONTACT>`** |
96
- | `kiro` | `CP-KI` | pilot | 21 von 35 | 6 von 6 | Gebaut **mit Zugang zum Client** (Kommandozeile 2.24.1, Engine V3): Gemessen an realen Installationen sind unter anderem `R1` bis `R3`, `S1`, `S2`, `S5`, `B1` bis `B8`, `H1` bis `H4` und `M4`; die Zeilen der IDE stehen auf der Dokumentation (`QK-1` bis `QK-9`, `K-162`). Fünf Zeilen sagen `BELEG OFFEN` (`A1`, `A2`, `M3`, `M7`, `X1`), dazu `X2` dauerhaft. 🔴 **Alle Zeilen des B-Blocks stehen unter der Bedingung des aktiven Agenten** – fehlt das Agentenprofil oder ist es kaputt, fällt der Client still auf seinen eingebauten Agenten zurück (Prüfung 96); die Hooks laufen nur in der interaktiven Sitzung |
97
- | `cursor` | `CP-CU` | pilot | 20 von 35 | 6 von 6 | Gebaut **mit Zugang zum Client** (Kommandozeile 2026.09.26, unter Windows): Gemessen an realen Installationen sind unter anderem `R1` bis `R3`, `S1`, `S3`, `B1` bis `B4`, `B6` bis `B9`, `H1` bis `H4` und `M4`; die Zeilen der IDE stehen auf der Dokumentation (`QU-1` bis `QU-8`, `K-175`). Sieben Zeilen sagen `BELEG OFFEN` (`S4`, `S5`, `A1`, `A2`, `M3`, `M7`, `X1`), dazu `X2` dauerhaft. 🔴 **Die Pfadmuster treffen nur in der Schreibweise mit führendem `*`**, weil der Client sie mit dem absoluten Pfad vergleicht; die Schreibweise für macOS und Linux ist nicht gemessen (`K-176`). **Schreiben im Arbeitsbereich fragt nicht zurück** (`B7`) |
97
+ | `kiro` | `CP-KI` | pilot | 21 von 35 | 6 von 6 | Gebaut **mit Zugang zum Client** (Kommandozeile 2.24.1, Engine V3): Gemessen an realen Installationen sind unter anderem `R1` bis `R3`, `S1`, `S2`, `S5`, `B1` bis `B8`, `H1` bis `H4` und `M4`; die Zeilen der IDE stehen auf der Dokumentation (`QK-1` bis `QK-9`). Fünf Zeilen sagen `BELEG OFFEN` (`A1`, `A2`, `M3`, `M7`, `X1`), dazu `X2` dauerhaft. 🔴 **Alle Zeilen des B-Blocks stehen unter der Bedingung des aktiven Agenten** – fehlt das Agentenprofil oder ist es kaputt, fällt der Client still auf seinen eingebauten Agenten zurück (Prüfung 96); die Hooks laufen nur in der interaktiven Sitzung |
98
+ | `cursor` | `CP-CU` | pilot | 20 von 35 | 6 von 6 | Gebaut **mit Zugang zum Client** (Kommandozeile 2026.09.26, unter Windows): Gemessen an realen Installationen sind unter anderem `R1` bis `R3`, `S1`, `S3`, `B1` bis `B4`, `B6` bis `B9`, `H1` bis `H4` und `M4`; die Zeilen der IDE stehen auf der Dokumentation (`QU-1` bis `QU-8`). Sieben Zeilen sagen `BELEG OFFEN` (`S4`, `S5`, `A1`, `A2`, `M3`, `M7`, `X1`), dazu `X2` dauerhaft. 🔴 **Die Pfadmuster treffen nur in der Schreibweise mit führendem `*`**, weil der Client sie mit dem absoluten Pfad vergleicht; die Schreibweise für macOS und Linux ist nicht gemessen. **Schreiben im Arbeitsbereich fragt nicht zurück** (`B7`) |
98
99
  | `claude-code` | `CP-CC` | pilot | 22 von 32 | 6 von 6 | teilweise – Dokumentenabgleich gegen 2.1.267 (AP2), Belegspalte nennt je Zeile die Quelle; **für sechs Zeilen liegen Messungen vor** – S3, S4, A1, die Reichweite von H2, B6 und, zur Hälfte, B2 –, für die übrigen stehen die Wirkungsnachweise aus. **Eine Zeile sagt `BELEG OFFEN`** (`M4`, die Planablage) |
99
100
 
100
101
  ## 7. Änderungsverlauf
@@ -111,3 +112,4 @@ Die Delegationsverbote V1 bis V12 (`.koolie/core/framework/core/09-risk-model.md
111
112
  | 0.7.2 | 2026-09-25 | Die Planablage (Zeile `M4`) steht jetzt in allen drei Matrizen; bei `claude-code` und `openai-codex` als `BELEG OFFEN`. Die Zählungen der Übersicht sind nachgezogen (`CR-2026-147`, D-402, `K-149`) | `<FRAMEWORK_OWNER>` |
112
113
  | 0.8.0 | 2026-09-26 | 🟢 **Das vierte Client Pack `kiro`, und mit ihm die dritte Ausgabeform der Berechtigungsdatei: ein Agentenprofil mit Fähigkeitsregeln** (`CR-2026-150`, D-414 bis D-417). Die Menge der formatgebundenen Prüfungen nennt je Eintrag die Formen, die er erreicht; sie führte 76 statt 72 (D-416) | `<FRAMEWORK_OWNER>` |
113
114
  | 0.9.0 | 2026-09-26 | 🟢 **Das fünfte Client Pack `cursor`, und mit ihm die vierte Ausgabeform der Berechtigungsdatei: nur `allow` und `deny`, ohne jeden weiteren Schlüssel** (`CR-2026-155`, D-440 bis D-443). Mit einem Kommentarschlüssel startet der Client nicht; die Kernregeln hält **Prüfung 97** gegen die Kernquelle. Die Regelablage trägt eine eigene Endung (`rule_file_ext`) | `<FRAMEWORK_OWNER>` |
115
+ | 0.10.0 | 2026-10-02 | Abschnitte 1 bis 5 neu gefasst, knapper und ohne Entscheidungsgeschichte; Schritt 6 nach Gegenständen gegliedert; `core_skill_prefix` ist `koolie-` (`CR-2026-173`) | `<FRAMEWORK_OWNER>` |
@@ -2,11 +2,11 @@
2
2
 
3
3
  <!-- AUSFÜLLHINWEIS: Kopiere dieses Verzeichnis nach ../<client-name>/, ersetze alle Platzhalter
4
4
  und lege ../<client-name>/root-template/ mit der erklärenden README der Laufzeitschicht sowie
5
- ../<client-name>/manifest.json an; die Wurzelartefakte kommen aus dem Kern (../README.md Abschnitt 5, D-20).
5
+ ../<client-name>/manifest.json an; die Wurzelartefakte kommen aus dem Kern (../README.md Abschnitt 5).
6
6
  Trage das Pack in ../README.md Abschnitt 6 und in .koolie/core/OWNERS.md ein.
7
7
  Ein Client Pack führt keine Verhaltensregeln ein (../README.md Abschnitt 2).
8
8
  Die Statuszelle ist ein Ausfüllschlitz: Ein neues Pack beginnt auf entwurf; der Lebenszyklus
9
- steht in .koolie/core/framework/core/01-governance.md Abschnitt 5 (D-104). -->
9
+ steht in .koolie/core/framework/core/01-governance.md Abschnitt 5. -->
10
10
 
11
11
  | Attribut | Wert |
12
12
  |---|---|
@@ -38,7 +38,7 @@ Wohin dieser Client die Laufzeitartefakte erwartet. Die linke Spalte ist die fra
38
38
 
39
39
  ## 1a. Semantikabbildung der Berechtigungen und Hooks
40
40
 
41
- Die Regelmenge liegt werkzeugneutral im Kern (`.koolie/core/framework/runtime/permissions.json`, `hooks.json`) und wird bei der Installation übersetzt (D-18). Diese Tabelle ist die menschenlesbare Fassung der Abbildungsfelder im `manifest.json`.
41
+ Die Regelmenge liegt werkzeugneutral im Kern (`.koolie/core/framework/runtime/permissions.json`, `hooks.json`) und wird bei der Installation übersetzt. Diese Tabelle ist die menschenlesbare Fassung der Abbildungsfelder im `manifest.json`.
42
42
 
43
43
  | Neutrales Werkzeugverb | Werkzeug bei diesem Client | Anmerkung |
44
44
  |---|---|---|
@@ -70,8 +70,8 @@ Einstufung je Zusage: `[TECHNISCH]` erzwungen · `[TEXTUELL]` nur Anweisung · `
70
70
  | R2 | Weitere Regeldateien lassen sich mit Ladebedingungen versehen (immer, bei Relevanz, manuell) | Laufzeit-README, Abschnitt „Regelablage" | `<TBD>` | `<TBD>` | `<TBD>` |
71
71
  | R3 | Regeln lassen sich an Dateimuster binden, damit ein Technology Pack nur bei passenden Dateien lädt | Ebene 5 | `<TBD>` | `<TBD>` | `<TBD>` |
72
72
  | R4 | Regelinhalte unterliegen einem bekannten Zeichenlimit, das das Framework einhalten kann | Laufzeit-README der Regelablage | `<TBD>` | `<TBD>` | `<TBD>` |
73
- | R5 | Die geladenen Regelquellen sind vollständig aufzählbar | D-34, `CR-2026-031` | `<TBD>` | `<TBD>` | `<TBD>` |
74
- | R6 | Das Framework importiert keine Regel- und Skillquellen fremder Werkzeugformate | D-37, `CR-2026-038` | `<TBD>` – kennt der Client keine Importsteuerung, ist die Zeile `[NICHT ABBILDBAR]`, und es bleibt bei der Auskunft in Abschnitt 7 | `<TBD>` | `<TBD>` |
73
+ | R5 | Die geladenen Regelquellen sind vollständig aufzählbar | `governance/PRIORITY_HIERARCHY.md` | `<TBD>` | `<TBD>` | `<TBD>` |
74
+ | R6 | Das Framework importiert keine Regel- und Skillquellen fremder Werkzeugformate | `clients/README.md` | `<TBD>` – kennt der Client keine Importsteuerung, ist die Zeile `[NICHT ABBILDBAR]`, und es bleibt bei der Auskunft in Abschnitt 7 | `<TBD>` | `<TBD>` |
75
75
 
76
76
  ### S – Skills
77
77
 
@@ -81,13 +81,13 @@ Einstufung je Zusage: `[TECHNISCH]` erzwungen · `[TEXTUELL]` nur Anweisung · `
81
81
  | S2 | Ein Skill ist gezielt aufrufbar | dito | `<TBD>` | `<TBD>` | `<TBD>` |
82
82
  | S3 | Ein Skill kann die ihm erlaubten Werkzeuge einschränken (lesende Skills schreiben nicht) | dito | `<TBD>` | `<TBD>` | `<TBD>` |
83
83
  | S4 | Schreibende Skills sind nur benutzergetriggert, nicht modellgetriggert – die Zusage gilt für die Skill-Ablage, die das Framework schreibt | dito | `<TBD>` | `<TBD>` | `<TBD>` |
84
- | S5 | Die geladenen Skills sind vollständig aufzählbar, samt Herkunft und Aufrufbarkeit | `CR-2026-032` | `<TBD>` | `<TBD>` | `<TBD>` |
84
+ | S5 | Die geladenen Skills sind vollständig aufzählbar, samt Herkunft und Aufrufbarkeit | `install.py --list-skills` | `<TBD>` | `<TBD>` | `<TBD>` |
85
85
 
86
86
  ### B – Berechtigungen
87
87
 
88
- > **`[TECHNISCH]` heißt in diesem Block:** Die Engine setzt die Regel durch, **solange der Betriebsmodus die Berechtigungsprüfung nicht abschaltet** (D-35). Schaltet sie der Modus ohne Rückfragen ab, den D-05 untersagt, trägt allein der Schutz-Hook. Diese Vorbemerkung ist **Pflicht** in jedem Pack; sie ist je Client um den eigenen Belegstand zu ergänzen – erhoben oder ausdrücklich nicht erhoben.
88
+ > **`[TECHNISCH]` heißt in diesem Block:** Die Engine setzt die Regel durch, **solange der Betriebsmodus die Berechtigungsprüfung nicht abschaltet**. Schaltet sie der Modus ohne Rückfragen ab, den `03-security.md` Abschnitt 4 untersagt, trägt allein der Schutz-Hook. Diese Vorbemerkung ist **Pflicht** in jedem Pack; sie ist je Client um den eigenen Belegstand zu ergänzen – erhoben oder ausdrücklich nicht erhoben.
89
89
 
90
- Die mit **Kern** markierten Zeilen entsprechen `_core_rules_integrity` in der Berechtigungsdatei, sofern sie JSON ist (D-395). Eine Abweichung von `[TECHNISCH]` ist dort begründungspflichtig.
90
+ Die mit **Kern** markierten Zeilen entsprechen `_core_rules_integrity` in der Berechtigungsdatei, sofern sie JSON ist. Eine Abweichung von `[TECHNISCH]` ist dort begründungspflichtig.
91
91
 
92
92
  | ID | Zusage des Frameworks | Kern | Mechanismus beim Client | Einstufung | Beleg |
93
93
  |---|---|---|---|---|---|
@@ -109,31 +109,31 @@ Die mit **Kern** markierten Zeilen entsprechen `_core_rules_integrity` in der Be
109
109
  | H1 | Vor einer Werkzeugausführung kann eine eigene Prüfung laufen | Hook-Konfiguration | `<TBD>` | `<TBD>` | `<TBD>` |
110
110
  | H2 | Diese Prüfung kann die Ausführung **blockieren** (nicht nur protokollieren) | dito | `<TBD>` | `<TBD>` | `<TBD>` |
111
111
  | H3 | Beim Sitzungsstart kann eine Statusmeldung erzeugt werden (Overlay aktiv, Version) | dito | `<TBD>` | `<TBD>` | `<TBD>` |
112
- | H4 | Der Schutz-Hook prüft das Eingabeschema und die Pfadidentität; die Zeile nennt die Zeitlücke zwischen Prüfung und Zugriff | D-63 | `<TBD>` | `<TBD>` | `<TBD>` |
112
+ | H4 | Der Schutz-Hook prüft das Eingabeschema und die Pfadidentität; die Zeile nennt die Zeitlücke zwischen Prüfung und Zugriff | `03-security.md` Abschnitt 4 | `<TBD>` | `<TBD>` | `<TBD>` |
113
113
 
114
114
  ### A – Agentenprofile
115
115
 
116
116
  | ID | Zusage des Frameworks | Quelle | Mechanismus beim Client | Einstufung | Beleg |
117
117
  |---|---|---|---|---|---|
118
- | A1 | Ein rein lesendes Reviewprofil ist definierbar | `.koolie/core/framework/runtime/agents/fw-reviewer.md` | `<TBD>` | `<TBD>` | `<TBD>` |
119
- | A2 | Ein rein lesendes Analyseprofil für Modus M1 ist verfügbar | D-05 | `<TBD>` | `<TBD>` | `<TBD>` |
118
+ | A1 | Ein rein lesendes Reviewprofil ist definierbar | `.koolie/core/framework/runtime/agents/koolie-reviewer.md` | `<TBD>` | `<TBD>` | `<TBD>` |
119
+ | A2 | Ein rein lesendes Analyseprofil für Modus M1 ist verfügbar | `05-working-model.md` M1 | `<TBD>` | `<TBD>` | `<TBD>` |
120
120
 
121
121
  ### M – Modi und Sitzungsfreigaben
122
122
 
123
123
  | ID | Zusage des Frameworks | Quelle | Mechanismus beim Client | Einstufung | Beleg |
124
124
  |---|---|---|---|---|---|
125
- | M1 | Es gibt einen Standardmodus, der bei Schreiben und Befehlen rückfragt | D-05 | `<TBD>` | `<TBD>` | `<TBD>` |
126
- | M2 | Ein Modus, der alle Rückfragen übergeht, lässt sich organisatorisch oder technisch ausschließen | D-05 | `<TBD>` | `<TBD>` | `<TBD>` |
125
+ | M1 | Es gibt einen Standardmodus, der bei Schreiben und Befehlen rückfragt | `03-security.md` Abschnitt 4 | `<TBD>` | `<TBD>` | `<TBD>` |
126
+ | M2 | Ein Modus, der alle Rückfragen übergeht, lässt sich organisatorisch oder technisch ausschließen | `03-security.md` Abschnitt 4 | `<TBD>` | `<TBD>` | `<TBD>` |
127
127
  | M3 | Eine erteilte Freigabe lässt sich auf die Sitzung begrenzen, statt sie dauerhaft zu speichern | Laufzeit-README | `<TBD>` | `<TBD>` | `<TBD>` |
128
- | M6 | Ein Modus mit selbsttätiger Übernahme von Dateiänderungen lässt sich begrenzen | D-05 | `<TBD>` | `<TBD>` | `<TBD>` |
129
- | M7 | Ein Modus, der selbst beurteilt, was sicher ist, lässt sich begrenzen | D-05 | `<TBD>` | `<TBD>` | `<TBD>` |
128
+ | M6 | Ein Modus mit selbsttätiger Übernahme von Dateiänderungen lässt sich begrenzen | `03-security.md` Abschnitt 4 | `<TBD>` | `<TBD>` | `<TBD>` |
129
+ | M7 | Ein Modus, der selbst beurteilt, was sicher ist, lässt sich begrenzen | `03-security.md` Abschnitt 4 | `<TBD>` | `<TBD>` | `<TBD>` |
130
130
 
131
131
  ### X – Externe Anbindung
132
132
 
133
133
  | ID | Zusage des Frameworks | Quelle | Mechanismus beim Client | Einstufung | Beleg |
134
134
  |---|---|---|---|---|---|
135
- | X1 | Externe Systeme sind standardmäßig nicht angebunden; jede Anbindung ist eine Einzelfreigabe | K-10, D-10 | `<TBD>` | `<TBD>` | `<TBD>` |
136
- | X2 | Ob und wohin Quellcode zur Indexierung abfließt, ist bekannt und dokumentiert | K-20 | `<TBD>` | `<TBD>` | `<TBD>` |
135
+ | X1 | Externe Systeme sind standardmäßig nicht angebunden; jede Anbindung ist eine Einzelfreigabe | `03-security.md` Abschnitt 2 (T8) | `<TBD>` | `<TBD>` | `<TBD>` |
136
+ | X2 | Ob und wohin Quellcode zur Indexierung abfließt, ist bekannt und dokumentiert | `02-privacy.md` | `<TBD>` | `<TBD>` | `<TBD>` |
137
137
 
138
138
  ## 3. Zusammenfassung der Durchsetzungstiefe
139
139
 
@@ -166,7 +166,7 @@ Vor der ersten produktiven Nutzung sind die Basistests des Testkatalogs (`.kooli
166
166
 
167
167
  ## 7. Anweisungs- und Konfigurationsquellen außerhalb des Projekts
168
168
 
169
- **Pflichtabschnitt.** Er führt, was dieser Client aus Ablagen **außerhalb des Repositoriums** lädt. Solche Quellen haben nach Regel 2.6 der Prioritätshierarchie **keine Ebene**: Sie dürfen einschränken, nie über die Ebenen 1 bis 4 hinaus erweitern und keine Governance-, Datenschutz- oder Sicherheitsregeln setzen (D-34). Prüfung 19 meldet ein Pack ohne diesen Abschnitt.
169
+ **Pflichtabschnitt.** Er führt, was dieser Client aus Ablagen **außerhalb des Repositoriums** lädt. Solche Quellen haben nach Regel 2.6 der Prioritätshierarchie **keine Ebene**: Sie dürfen einschränken, nie über die Ebenen 1 bis 4 hinaus erweitern und keine Governance-, Datenschutz- oder Sicherheitsregeln setzen. Prüfung 19 meldet ein Pack ohne diesen Abschnitt.
170
170
 
171
171
  **Erhebungsstand: `<TBD: JJJJ-MM-TT>`**, Clientversion `<TBD>`, erhoben mit `<TBD: Kommandos oder Messweg>`.
172
172
 
@@ -180,7 +180,7 @@ Regeltexte, Skills, Agentenprofile. Je bekannter Quelle eine Zeile – **oder**
180
180
 
181
181
  ### 7.2 Konfigurationsquellen
182
182
 
183
- Berechtigungen, Hooks und Einstellungen außerhalb des Repositoriums – sie betreffen genau die Linien, auf denen B1 bis B6 stehen (`CR-2026-038`).
183
+ Berechtigungen, Hooks und Einstellungen außerhalb des Repositoriums – sie betreffen genau die Linien, auf denen B1 bis B6 stehen.
184
184
 
185
185
  | Quelle | Wirkung | Belegstatus |
186
186
  |---|---|---|