@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
@@ -6,7 +6,7 @@
6
6
  | Ebene | 1 – Framework Core |
7
7
  | Verbindlichkeit | normativ (Abschnitte 1–3), Erläuterung (Abschnitt 4) |
8
8
  | Owner | `<FRAMEWORK_OWNER>` |
9
- | Version | 0.1.13 |
9
+ | Version | 0.1.14 |
10
10
  | Status | `pilot` |
11
11
 
12
12
  ## 1. Standardarbeitsablauf (normativ)
@@ -19,22 +19,22 @@ Jede KI-Aufgabe folgt den vierzehn Schritten. Schritte DÜRFEN NICHT übersprung
19
19
  | 2 | Scope und Grenzen bestimmen | Mensch | Erlaubte Pfade, ausgeschlossene Pfade, Betriebsmodus, Kontrollstufe (`09-risk-model.md`) | `.koolie/core/decision-trees/02-may-ai-do-task.md`, `03-analyze-or-modify.md` |
20
20
  | 3 | Datenschutz und Kontextfreigabe prüfen | Mensch | Kontextklassen aller vorgesehenen Quellen prüfen (`02-privacy.md`); K3-Inhalte ausschließen | `.koolie/core/checklists/02-privacy-context.md`, `.koolie/core/decision-trees/01-context-allowed.md` |
21
21
  | 4 | Rückfragen und offene Punkte erfassen | KI-Client | Liste der Unklarheiten mit Auswirkung; keine Bearbeitung ungeklärter Punkte (P3) | – |
22
- | 5 | Relevanten Ist-Zustand analysieren | KI-Client | Nur die für die Aufgabe relevanten Dateien lesen; keine Änderungen (P4) | Skill `fw-repo-analyze` |
22
+ | 5 | Relevanten Ist-Zustand analysieren | KI-Client | Nur die für die Aufgabe relevanten Dateien lesen; keine Änderungen (P4) | Skill `koolie-repo-analyze` |
23
23
  | 6 | Befunde mit Fundstellen darstellen | KI-Client | Jede Aussage mit `pfad/datei:zeile` oder Suchmuster belegen | – |
24
- | 7 | Lösungsoptionen bewerten | KI-Client, Entscheidung Mensch | Mindestens zwei Optionen bei Stufe mittel/hoch; Kriterien: Risiko, Aufwand, Reversibilität, Konsistenz mit Architektur | Skill `fw-change-analyze` |
25
- | 8 | Vorgehen oder Änderungsplan vorschlagen | KI-Client | Schrittfolge, betroffene Dateien, Tests, Abbruchkriterien | Skill `fw-plan` |
24
+ | 7 | Lösungsoptionen bewerten | KI-Client, Entscheidung Mensch | Mindestens zwei Optionen bei Stufe mittel/hoch; Kriterien: Risiko, Aufwand, Reversibilität, Konsistenz mit Architektur | Skill `koolie-change-analyze` |
25
+ | 8 | Vorgehen oder Änderungsplan vorschlagen | KI-Client | Schrittfolge, betroffene Dateien, Tests, Abbruchkriterien | Skill `koolie-plan` |
26
26
  | 9 | Freigabepunkt vor Änderungen am Produktivcode (Schritt 10, M3) | Mensch | Bestätigung des Plans (Stufe mittel) oder dokumentierte Freigabe `<APPROVAL_ROLE>` (Stufe hoch) | `09-risk-model.md` |
27
- | 10 | Änderung in kleinen, nachvollziehbaren Schritten umsetzen | KI-Client unter Beobachtung | Ein logischer Schritt je Änderung; nach jedem Schritt Zwischenstand berichten (P7) | Skill `fw-change-small`, `.koolie/core/checklists/03-before-code-change.md` |
27
+ | 10 | Änderung in kleinen, nachvollziehbaren Schritten umsetzen | KI-Client unter Beobachtung | Ein logischer Schritt je Änderung; nach jedem Schritt Zwischenstand berichten (P7) | Skill `koolie-change-small`, `.koolie/core/checklists/03-before-code-change.md` |
28
28
  | 11 | Tests und Qualitätsprüfungen ausführen | KI-Client, Bewertung Mensch | Nur im Overlay freigegebene Befehle (`<BUILD_COMMAND>`, `<TEST_COMMAND>`, `<LINT_COMMAND>`); Ergebnisse unverändert berichten | `.koolie/core/checklists/05-testing.md` |
29
29
  | 12 | Ergebnis, Abweichungen und Restrisiken dokumentieren | KI-Client | Ergebnisbericht nach Standardformat (Abschnitt 3.6) | – |
30
- | 13 | Menschliche Prüfung ermöglichen | KI-Client, dann Mensch | Diff, Fundstellen, Testprotokoll, offene Punkte bereitstellen; Review anhand `.koolie/core/checklists/04-review-ai-code.md` | Skill `fw-review-support` |
31
- | 14 | Übernahme über den bestehenden Review- und Freigabeprozess | Mensch | Merge Request mit KI-Nutzungsvermerk; reguläre Quality Gates und Review (P5, P6) | `.koolie/core/checklists/08-merge-request.md`, Skill `fw-mr-description` |
30
+ | 13 | Menschliche Prüfung ermöglichen | KI-Client, dann Mensch | Diff, Fundstellen, Testprotokoll, offene Punkte bereitstellen; Review anhand `.koolie/core/checklists/04-review-ai-code.md` | Skill `koolie-review-support` |
31
+ | 14 | Übernahme über den bestehenden Review- und Freigabeprozess | Mensch | Merge Request mit KI-Nutzungsvermerk; reguläre Quality Gates und Review (P5, P6) | `.koolie/core/checklists/08-merge-request.md`, Skill `koolie-mr-description` |
32
32
 
33
- **Die Spalte „Referenz“ nennt bei sechs Schritten einen Skill (5, 7, 8, 10, 13, 14). Wo sie einen nennt, ist er der vorgesehene Weg des Schrittes** – keine Leseempfehlung. Ein anderer Weg ist zulässig, MUSS aber im Ergebnisbericht benannt und begründet werden (Abschnitt 3.6). **Ein abgewiesener Skill-Aufruf ist keine Verwendung:** Wer die `SKILL.md` ersatzweise liest und ihren Ablauf von Hand nacharbeitet, arbeitet ohne die Werkzeugbeschränkung des Skills. Gemessen am 2026-09-14 `[MESS]` (`.koolie/core/tests/protocols/2026-09-14-erhebung-skillaufruf.md`, D-83): In zwei von zwei nachgearbeiteten Läufen wies die Sitzung den Skill im Bericht als verwendet oder aufgerufen aus, und in einem davon verwendete sie ein Werkzeug, das der Skill sperrt.
33
+ Die Spalte „Referenz“ nennt bei sechs Schritten einen Skill (5, 7, 8, 10, 13, 14). Wo sie einen nennt, ist er der vorgesehene Weg des Schrittes – keine Leseempfehlung. Ein anderer Weg ist zulässig, MUSS aber im Ergebnisbericht benannt und begründet werden (Abschnitt 3.6). Ein abgewiesener Skill-Aufruf ist keine Verwendung: Wer die `SKILL.md` ersatzweise liest und ihren Ablauf von Hand nacharbeitet, arbeitet ohne die Werkzeugbeschränkung des Skills. Gemessen am 2026-09-14 `[MESS]` (`.koolie/core/tests/protocols/2026-09-14-erhebung-skillaufruf.md`): In zwei von zwei nachgearbeiteten Läufen wies die Sitzung den Skill im Bericht als verwendet oder aufgerufen aus, und in einem davon verwendete sie ein Werkzeug, das der Skill sperrt.
34
34
 
35
35
  ## 2. Betriebsmodi (normativ)
36
36
 
37
- Jede Aufgabe wird genau einem Betriebsmodus zugeordnet. Den Modus gibt der Mensch vor; ohne Angabe gilt M1 (D-390). Ein Moduswechsel innerhalb einer Sitzung ist zulässig, MUSS aber ausdrücklich durch den Menschen angewiesen werden und wird vom KI-Client im Ergebnisbericht vermerkt.
37
+ Jede Aufgabe wird genau einem Betriebsmodus zugeordnet. Den Modus gibt der Mensch vor; ohne Angabe gilt M1. Ein Moduswechsel innerhalb einer Sitzung ist zulässig, MUSS aber ausdrücklich durch den Menschen angewiesen werden und wird vom KI-Client im Ergebnisbericht vermerkt.
38
38
 
39
39
  ### 2.1 Übersicht
40
40
 
@@ -60,7 +60,7 @@ Jede Aufgabe wird genau einem Betriebsmodus zugeordnet. Den Modus gibt der Mensc
60
60
  | Prüfpflichten | Mensch prüft Befunde stichprobenartig an den angegebenen Fundstellen; unbelegte Aussagen gelten als unbestätigt |
61
61
  | Abbruchkriterien | Zugriff auf K3-Inhalte erforderlich; Fundstellen nicht auffindbar; Frage erfordert Informationen außerhalb des Repositorys, die nicht freigegeben sind |
62
62
  | Erwartete Ausgabe | Strukturierter Analysebericht: Fragestellung, untersuchte Bereiche, Befunde mit Fundstellen, offene Punkte, ausdrückliche Kennzeichnung von Vermutungen |
63
- | Umsetzung im Werkzeug | **Die Modusgrenze gilt normativ; technisch durchsetzen lässt sie sich seit `1.20.2` mit einer Modusbindung** (`mandat.py modus M1`, D-501): Dann sperrt der Schutz-Hook jedes Schreibwerkzeug `[MESS]`; ein Shell-Befehl, der schreibt, entgeht ihr (D-30). Kennt der KI-Client einen eigenen Nur-Lese-Modus oder ein rein lesendes Agentenprofil, ist dieser Weg vorzuziehen – welcher das ist, steht in der Fähigkeitsmatrix seines Client Packs (Zeilen S3 und A1) `[DOK]` je Pack. Die Skill-`permissions` tragen die Modusgrenze teilweise, ersetzen sie aber nicht `[MESS]`: Bei `claude-code` ist die Quelle `permissions.deny` auf `disallowed-tools` abgebildet, und das entfernt die Schreibwerkzeuge wirklich – gemessen am 2026-09-13 (`tests/protocols/2026-09-13-erhebung-disallowed-tools.md`, D-64). **Die Sperre gilt aber nur für den aufrufenden Turn;** mit der nächsten Nachricht der Person ist das Werkzeug zurück – gemessen. Ein „nur lesender" Skill ist damit nur während seines Turns nur lesend und trägt M1 nicht als Betriebsmodus einer Sitzung. Wer M1 über einen Turn hinaus braucht, braucht die globale Berechtigungsschicht oder einen Nur-Lese-Modus des Clients. Innerhalb des Turns gilt die Entfernung auch für einen Unteragenten, den der Skill startet – gemessen am 2026-09-13 (`tests/protocols/2026-09-13-erhebung-unteragent.md`, D-67) `[MESS]`, mit Kontrolllauf –, sie reicht dort aber genauso weit wie oben: Mit gesperrtem `Write, Edit` schrieb der Unteragent über `Bash`. Das rein lesende Agentenprofil ist der belastbarere Weg zu M1, gemessen am 2026-09-13 (D-68) `[MESS]`: Ein Profil mit `tools: Read, Grep, Glob` hatte kein Schreibwerkzeug im Vorrat; es hängt nicht am Turn, sondern am Profil. Es kann sich nicht selbst erweitern (D-73) `[MESS]`: Ihm fehlt das Werkzeug, um eine zweite, weniger beschränkte Ebene zu starten. Bei Widerspruch gewinnt die restriktivere Liste (D-72) `[MESS]` – ein Profil, das ein Werkzeug ausdrücklich erlaubt, bekommt es unter einem Skill, der es sperrt, nicht; die Liste lässt sich nur enger machen, nie weiter. `allowed-tools` trägt die Grenze nicht: Es ist eine Vorabfreigabe und keine Beschränkung – gemessen am 2026-09-12 (`tests/protocols/2026-09-12-B01-allowed-tools.md`, B01) `[MESS]`. Jedes Pack benennt, was an die Stelle eines verworfenen Feldes tritt, sonst bricht die Installation ab (`CR-2026-050`, D-50); der Ersatz steht in Zeile S3 der Fähigkeitsmatrix. Unabhängig vom Modus wirken die Sperren auf Secret- und Kernpfade `[DOK]` |
63
+ | Umsetzung im Werkzeug | Die Modusgrenze gilt normativ; technisch durchsetzen lässt sie sich mit einer Modusbindung (`mandat.py modus M1`): Dann sperrt der Schutz-Hook jedes Schreibwerkzeug `[MESS]`; ein Shell-Befehl, der schreibt, entgeht ihr. Kennt der KI-Client einen eigenen Nur-Lese-Modus oder ein rein lesendes Agentenprofil, ist dieser Weg vorzuziehen – welcher das ist, steht in der Fähigkeitsmatrix seines Client Packs (Zeilen S3 und A1) `[DOK]` je Pack. Die Skill-`permissions` tragen die Modusgrenze teilweise, ersetzen sie aber nicht `[MESS]`: Bei `claude-code` ist die Quelle `permissions.deny` auf `disallowed-tools` abgebildet, und das entfernt die Schreibwerkzeuge wirklich – gemessen am 2026-09-13 (`tests/protocols/2026-09-13-erhebung-disallowed-tools.md`). **Die Sperre gilt aber nur für den aufrufenden Turn;** mit der nächsten Nachricht der Person ist das Werkzeug zurück – gemessen. Ein „nur lesender" Skill ist damit nur während seines Turns nur lesend und trägt M1 nicht als Betriebsmodus einer Sitzung. Wer M1 über einen Turn hinaus braucht, braucht die globale Berechtigungsschicht oder einen Nur-Lese-Modus des Clients. Innerhalb des Turns gilt die Entfernung auch für einen Unteragenten, den der Skill startet – gemessen am 2026-09-13 (`tests/protocols/2026-09-13-erhebung-unteragent.md`) `[MESS]`, mit Kontrolllauf –, sie reicht dort aber genauso weit wie oben: Mit gesperrtem `Write, Edit` schrieb der Unteragent über `Bash`. Das rein lesende Agentenprofil ist der belastbarere Weg zu M1, gemessen am 2026-09-13 `[MESS]`: Ein Profil mit `tools: Read, Grep, Glob` hatte kein Schreibwerkzeug im Vorrat; es hängt nicht am Turn, sondern am Profil. Es kann sich nicht selbst erweitern `[MESS]`: Ihm fehlt das Werkzeug, um eine zweite, weniger beschränkte Ebene zu starten. Bei Widerspruch gewinnt die restriktivere Liste `[MESS]` – ein Profil, das ein Werkzeug ausdrücklich erlaubt, bekommt es unter einem Skill, der es sperrt, nicht; die Liste lässt sich nur enger machen, nie weiter. `allowed-tools` trägt die Grenze nicht: Es ist eine Vorabfreigabe und keine Beschränkung – gemessen am 2026-09-12 (`tests/protocols/2026-09-12-B01-allowed-tools.md`, B01) `[MESS]`. Jedes Pack benennt, was an die Stelle eines verworfenen Feldes tritt, sonst bricht die Installation ab; der Ersatz steht in Zeile S3 der Fähigkeitsmatrix. Unabhängig vom Modus wirken die Sperren auf Secret- und Kernpfade `[DOK]` |
64
64
 
65
65
  #### M2 Guided Planning
66
66
 
@@ -73,7 +73,7 @@ Jede Aufgabe wird genau einem Betriebsmodus zugeordnet. Den Modus gibt der Mensc
73
73
  | Prüfpflichten | Mensch bestätigt oder verwirft den Plan schriftlich (Stufe mittel) beziehungsweise `<APPROVAL_ROLE>` gibt frei (Stufe hoch); jede Planänderung nach Freigabe erfordert erneute Bestätigung |
74
74
  | Abbruchkriterien | Anforderungen widersprüchlich; Plan würde Delegationsverbotsliste berühren; Plan erfordert Kontext außerhalb der Freigabe |
75
75
  | Erwartete Ausgabe | Plan nach `.koolie/core/templates/PLAN_TEMPLATE.md`: Ziel, Annahmen (gekennzeichnet), offene Fragen, Schritte, betroffene Dateien, Teststrategie, Risiken, Rollback |
76
- | Umsetzung im Werkzeug | **Die Beschränkung des Schreibrechts auf die Plan-Datei gilt normativ; technisch durchsetzen lässt sie sich seit `1.20.2` mit einer Modusbindung** (D-501): Der Mensch führt im eigenen Terminal `python .koolie/core/mandat.py modus M2 --ablage <pfad>` aus, und der Schutz-Hook sperrt jedes Schreibwerkzeug außerhalb der Plan-Ablage – befristet wie ein Mandat, und der Client kann die Bindung weder setzen noch aufheben `[MESS]`. **Grenze:** Ein Shell-Befehl, der schreibt, entgeht der Bindung (D-30); dort tragen Rückfrage und Regelschicht. Ohne Bindung gilt die Grenze nur normativ. Kennt der KI-Client einen eigenen Planungsmodus mit persistenter Plan-Datei, ist dieser vorzuziehen (Fähigkeitsmatrix des Client Packs) `[DOK]` je Pack. Liegt die Plan-Datei außerhalb des Repositorys, wird sie für die Nachvollziehbarkeit in das im Overlay festgelegte Ablageformat übernommen (`<TBD: Ablage von Plänen im Projekt>`) |
76
+ | Umsetzung im Werkzeug | Die Beschränkung des Schreibrechts auf die Plan-Datei gilt normativ; technisch durchsetzen lässt sie sich mit einer Modusbindung: Der Mensch führt im eigenen Terminal `python .koolie/core/mandat.py modus M2 --ablage <pfad>` aus, und der Schutz-Hook sperrt jedes Schreibwerkzeug außerhalb der Plan-Ablage – befristet wie ein Mandat, und der Client kann die Bindung weder setzen noch aufheben `[MESS]`. Grenze: Ein Shell-Befehl, der schreibt, entgeht der Bindung; dort tragen Rückfrage und Regelschicht. Ohne Bindung gilt die Grenze nur normativ. Kennt der KI-Client einen eigenen Planungsmodus mit persistenter Plan-Datei, ist dieser vorzuziehen (Fähigkeitsmatrix des Client Packs) `[DOK]` je Pack. Liegt die Plan-Datei außerhalb des Repositorys, wird sie für die Nachvollziehbarkeit in das im Overlay festgelegte Ablageformat übernommen (`<TBD: Ablage von Plänen im Projekt>`) |
77
77
 
78
78
  #### M3 Controlled Modification
79
79
 
@@ -83,10 +83,10 @@ Jede Aufgabe wird genau einem Betriebsmodus zugeordnet. Den Modus gibt der Mensc
83
83
  | Zulässige Aktionen | Dateien innerhalb `<ALLOWED_PATHS>` ändern; freigegebene Build-, Test- und Lint-Befehle ausführen; lesende Git-Befehle (status, diff, log, show, blame) zur Aufnahme des eigenen Änderungsstands ausführen; nach jedem Schritt Zwischenstand berichten |
84
84
  | Verbotene Aktionen | Änderungen außerhalb des Scopes; Änderungen an `<EXCLUDED_PATHS>`; neue Abhängigkeiten ohne Freigabe; Git-Operationen mit Fernwirkung (push, merge, tag, rebase auf geteilten Branches); Löschen von Dateien ohne ausdrückliche Einzelfreigabe; Deaktivieren oder Löschen von Tests; Anpassen von Quality-Gate-Konfigurationen |
85
85
  | Benötigter Kontext | Bestätigter Plan; betroffene Dateien; Coding Conventions; Test- und Build-Befehle aus dem Overlay |
86
- | Prüfpflichten | Mensch beobachtet die Sitzung im rückfragenden Standardmodus (D-05; wie der Modus im Client heißt, nennt die Fähigkeitsmatrix des Client Packs) und bestätigt Schreib- und Ausführungsanfragen einzeln; vollständiger Diff-Review vor Commit; Quality Gates |
86
+ | Prüfpflichten | Mensch beobachtet die Sitzung im rückfragenden Standardmodus (wie der Modus im Client heißt, nennt die Fähigkeitsmatrix des Client Packs) und bestätigt Schreib- und Ausführungsanfragen einzeln; vollständiger Diff-Review vor Commit; Quality Gates |
87
87
  | Abbruchkriterien | Abweichung vom Plan erforderlich; unerwartete Berührung weiterer Komponenten; fehlgeschlagene Tests ohne klare Ursache; Fund von Secrets oder personenbezogenen Echtdaten; Anstieg der Kontrollstufe |
88
88
  | Erwartete Ausgabe | Änderungssatz (Diff) mit Schrittprotokoll, ausgeführten Befehlen und Ergebnissen, Abweichungen vom Plan, Restrisiken, Vorschlag für Commit-Nachricht |
89
- | Umsetzung im Werkzeug | Rückfragender Standardmodus (Schreib- und Ausführungsanfragen werden einzeln bestätigt) `[DOK]`; Berechtigungsdatei mit Verweigerung für ausgeschlossene Pfade und Fernwirkungs-Befehle, Rückfrage für Schreiben und Ausführen `[DOK]`; ein Modus ohne Rückfragen DARF NICHT verwendet werden (D-05) `[KONZ]`; sitzungsweite Freigaben nur für die im Overlay freigegebenen Testbefehle `[EMPF]`. **Die Beschränkung auf `<ALLOWED_PATHS>` lässt sich seit `1.23.0` binden** (D-523): `python .koolie/core/mandat.py modus M3 [--umfang <glob> …]` – der Schutz-Hook sperrt dann jedes Schreibwerkzeug außerhalb der Pfadliste (mit `--umfang` außerhalb der Schnittmenge mit dem freigegebenen Scope) und in `<READ_ONLY_PATHS>` `[MESS]`. Die Bindung ersetzt weder die Rückfrage noch das Review; ein Shell-Befehl, der schreibt, entgeht ihr (D-30) |
89
+ | Umsetzung im Werkzeug | Rückfragender Standardmodus (Schreib- und Ausführungsanfragen werden einzeln bestätigt) `[DOK]`; Berechtigungsdatei mit Verweigerung für ausgeschlossene Pfade und Fernwirkungs-Befehle, Rückfrage für Schreiben und Ausführen `[DOK]`; ein Modus ohne Rückfragen DARF NICHT verwendet werden `[KONZ]`; sitzungsweite Freigaben nur für die im Overlay freigegebenen Testbefehle `[EMPF]`. Die Beschränkung auf `<ALLOWED_PATHS>` lässt sich binden: `python .koolie/core/mandat.py modus M3 [--umfang <glob> …]` – der Schutz-Hook sperrt dann jedes Schreibwerkzeug außerhalb der Pfadliste (mit `--umfang` außerhalb der Schnittmenge mit dem freigegebenen Scope) und in `<READ_ONLY_PATHS>` `[MESS]`. Die Bindung ersetzt weder die Rückfrage noch das Review; ein Shell-Befehl, der schreibt, entgeht ihr |
90
90
 
91
91
  #### M4 Test and Validation
92
92
 
@@ -99,7 +99,7 @@ Jede Aufgabe wird genau einem Betriebsmodus zugeordnet. Den Modus gibt der Mensc
99
99
  | Prüfpflichten | Mensch prüft, ob Tests das fachliche Verhalten und nicht die Implementierung zementieren; prüft synthetische Testdaten; prüft Aussagekraft fehlschlagender Tests |
100
100
  | Abbruchkriterien | Test erfordert Änderung am Produktivcode (dann Wechsel nach M2/M3 durch den Menschen); Testinfrastruktur nicht verfügbar; Testdaten nur aus Echtdaten ableitbar |
101
101
  | Erwartete Ausgabe | Testdateien, Testprotokoll (Befehl, Ergebnis, Dauer), Liste nicht abgedeckter Fälle, Bewertung der Aussagekraft |
102
- | Umsetzung im Werkzeug | **Die Beschränkung auf `<TEST_PATHS>` gilt normativ; technisch durchsetzen lässt sie sich seit `1.23.0` mit einer Modusbindung** (`mandat.py modus M4`, D-523): Dann sperrt der Schutz-Hook jedes Schreibwerkzeug außerhalb von `<TEST_PATHS>` `[MESS]`; ein Shell-Befehl, der schreibt, entgeht ihr (D-30). Ohne Bindung entscheidet der Hook innerhalb und außerhalb des Scopes gleich – gemessen am 2026-09-12 (`.koolie/core/tests/protocols/2026-09-12-B04-B05-gegenpruefung.md`, B05) `[DOK]` für den Befund. Die Skill-`permissions` tragen sie ebenfalls nicht (B01, siehe M1); welcher Mechanismus stattdessen trägt, steht in Zeile S3 der Fähigkeitsmatrix des jeweiligen Packs. Getragen wird sie von der Regelschicht und der Prüfpflicht dieses Modus; unabhängig davon wirken die Sperren auf Secret- und Kernpfade `[DOK]` |
102
+ | Umsetzung im Werkzeug | Die Beschränkung auf `<TEST_PATHS>` gilt normativ; technisch durchsetzen lässt sie sich mit einer Modusbindung (`mandat.py modus M4`): Dann sperrt der Schutz-Hook jedes Schreibwerkzeug außerhalb von `<TEST_PATHS>` `[MESS]`; ein Shell-Befehl, der schreibt, entgeht ihr. Ohne Bindung entscheidet der Hook innerhalb und außerhalb des Scopes gleich – gemessen am 2026-09-12 (`.koolie/core/tests/protocols/2026-09-12-B04-B05-gegenpruefung.md`, B05) `[DOK]` für den Befund. Die Skill-`permissions` tragen sie ebenfalls nicht (B01, siehe M1); welcher Mechanismus stattdessen trägt, steht in Zeile S3 der Fähigkeitsmatrix des jeweiligen Packs. Getragen wird sie von der Regelschicht und der Prüfpflicht dieses Modus; unabhängig davon wirken die Sperren auf Secret- und Kernpfade `[DOK]` |
103
103
 
104
104
  #### M5 Documentation Support
105
105
 
@@ -112,21 +112,21 @@ Jede Aufgabe wird genau einem Betriebsmodus zugeordnet. Den Modus gibt der Mensc
112
112
  | Prüfpflichten | Fachliche Prüfung durch eine Person mit Domänenwissen; Prüfung auf vertrauliche Inhalte vor Ablage in `<DOCUMENTATION_PLATFORM>` |
113
113
  | Abbruchkriterien | Dokumentierter Sachverhalt aus dem Code nicht belegbar; Widerspruch zwischen Code und bestehender Dokumentation, der eine fachliche Entscheidung erfordert |
114
114
  | Erwartete Ausgabe | Geänderte Dokumentationsdateien, Änderungsübersicht, Liste belegter Quellen, Liste offener fachlicher Klärungen |
115
- | Umsetzung im Werkzeug | **Die Beschränkung auf `<DOC_PATHS>` gilt normativ; technisch durchsetzen lässt sie sich seit `1.23.0` mit einer Modusbindung** (`mandat.py modus M5`, D-523; ohne `<DOC_PATHS>` bindet sie nicht) `[MESS]`; ein Shell-Befehl, der schreibt, entgeht ihr (D-30). Ohne Bindung gilt: Eine Beschränkung auf `<DOC_PATHS>` unter Ausschluss aller übrigen Pfade ist über Skill-`permissions` nicht ausdrückbar (`<DOC_PATHS>` ist Teilmenge von `<ALLOWED_PATHS>`, und `deny` gewinnt gegen `allow`) `[DOK]`, und das Feld `permissions` kennt nicht jeder Client für Skills (`skill_frontmatter.drop_fields` im Manifest des Packs, B01) – was an seine Stelle tritt, benennt die Zeile S3 seiner Fähigkeitsmatrix. Der Schutz-Hook kennt den Modus dann nicht (`.koolie/core/tests/protocols/2026-09-12-B04-B05-gegenpruefung.md`, B05) `[DOK]` für den Befund. Getragen wird sie von der Regelschicht und der fachlichen Prüfpflicht dieses Modus |
115
+ | Umsetzung im Werkzeug | Die Beschränkung auf `<DOC_PATHS>` gilt normativ; technisch durchsetzen lässt sie sich mit einer Modusbindung (`mandat.py modus M5`; ohne `<DOC_PATHS>` bindet sie nicht) `[MESS]`; ein Shell-Befehl, der schreibt, entgeht ihr. Ohne Bindung gilt: Eine Beschränkung auf `<DOC_PATHS>` unter Ausschluss aller übrigen Pfade ist über Skill-`permissions` nicht ausdrückbar (`<DOC_PATHS>` ist Teilmenge von `<ALLOWED_PATHS>`, und `deny` gewinnt gegen `allow`) `[DOK]`, und das Feld `permissions` kennt nicht jeder Client für Skills (`skill_frontmatter.drop_fields` im Manifest des Packs, B01) – was an seine Stelle tritt, benennt die Zeile S3 seiner Fähigkeitsmatrix. Der Schutz-Hook kennt den Modus dann nicht (`.koolie/core/tests/protocols/2026-09-12-B04-B05-gegenpruefung.md`, B05) `[DOK]` für den Befund. Getragen wird sie von der Regelschicht und der fachlichen Prüfpflicht dieses Modus |
116
116
 
117
117
  #### M6 Mandated Maintenance
118
118
 
119
119
  | Aspekt | Festlegung |
120
120
  |---|---|
121
- | Zweck | Eine Entscheidung, die der Mensch in der Sitzung getroffen hat, direkt in das Project Overlay und die Projektdokumentation eintragen – bei der Einrichtung, nach einem Framework-Update und im laufenden Projekt –, statt sie als Vorlage zum Abschreiben zu liefern (D-446) |
121
+ | Zweck | Eine Entscheidung, die der Mensch in der Sitzung getroffen hat, direkt in das Project Overlay und die Projektdokumentation eintragen – bei der Einrichtung, nach einem Framework-Update und im laufenden Projekt –, statt sie als Vorlage zum Abschreiben zu liefern |
122
122
  | Voraussetzung | Ein **Mandat**, das der Mensch im eigenen Terminal erteilt: `python .koolie/core/mandat.py erteilen --rolle <Rolle> --umfang overlay\|dokumente --minuten <1–480>`. Es ist befristet, auf einen Umfang begrenzt und liegt im Git-Verzeichnis, nicht im Arbeitsbaum. Ein Satz im Chat ist kein Mandat |
123
123
  | Zulässige Aktionen | Im Umfang des Mandats Dateien erstellen und ändern; in `<DOC_PATHS>` wie M5; lesende Git-Befehle; `validate-framework.py`, `install.py --check` und `mandat.py status` ausführen; offene Punkte als `<TBD: …>` eintragen |
124
124
  | Verbotene Aktionen | Eine Entscheidung treffen, die der Mensch nicht getroffen hat (V3, V10); ein Mandat erteilen, verlängern oder ändern; Kern, Laufzeitschicht, Wurzel-Anweisungsdatei oder Berechtigungsdatei ändern; `install.py --update` ausführen (es erzeugt die Berechtigungsdatei neu – V6); eine Regel des Kerns im Overlay lockern (Verschärfungsprinzip) |
125
125
  | Benötigter Kontext | Die Entscheidung des Menschen in der Sitzung, mit Rolle; die betroffenen Overlay-Abschnitte; bei einem Framework-Update die Meldungen von `install.py --update` |
126
126
  | Prüfpflichten | Am Ende `python .koolie/core/tests/scripts/validate-framework.py --strict-overlay`; Überprüfung jeder Änderung im Merge Request durch den Menschen (V1) |
127
127
  | Abbruchkriterien | Kein gültiges Mandat (Blockade-Hinweis, Abschnitt 3.7); die Anweisung verlangt eine Entscheidung statt ihrer Eintragung; eine Änderung würde eine Kernregel lockern; der Validator meldet einen Fehler, den die Eintragung verursacht hat |
128
- | Erwartete Ausgabe | Geänderte Dateien; im Änderungsverlauf des Overlays eine Zeile mit Rolle, Anlass und Datum; im Ergebnisbericht Mandat (Rolle, Umfang), Validatorergebnis und **jede geänderte Befehlsfreigabe oder Pfadliste als berechtigungswirksam** – sie wirkt erst, wenn der Mensch `install.py --update` ausführt |
129
- | Umsetzung im Werkzeug | **Technisch durchgesetzt über den Schutz-Hook** `[KONZ]`: Er sperrt `.koolie/project-overlay/` für jedes Schreibwerkzeug, solange kein gültiges Mandat das Ziel deckt, und sperrt Mandatsdatei und `mandat.py` für jede nicht lesende Operation (D-447). Die Berechtigungsdatei sperrt das Overlay seit `1.17.0` nicht mehr – eine statische Sperre könnte das Mandat nicht aufheben (D-448). Wo der Hook eines Packs nicht läuft, gilt die Grenze nur normativ; die Fähigkeitsmatrix des Packs sagt, wo das der Fall ist |
128
+ | Erwartete Ausgabe | Geänderte Dateien; im Änderungsverlauf des Overlays eine Zeile mit Rolle, Anlass und Datum; im Ergebnisbericht Mandat (Rolle, Umfang), Validatorergebnis und jede geänderte Befehlsfreigabe oder Pfadliste als berechtigungswirksam – sie wirkt erst, wenn der Mensch `install.py --update` ausführt |
129
+ | Umsetzung im Werkzeug | Technisch durchgesetzt über den Schutz-Hook `[KONZ]`: Er sperrt `.koolie/project-overlay/` für jedes Schreibwerkzeug, solange kein gültiges Mandat das Ziel deckt, und sperrt Mandatsdatei und `mandat.py` für jede nicht lesende Operation. Die Berechtigungsdatei sperrt das Overlay nicht – eine statische Sperre könnte das Mandat nicht aufheben. Wo der Hook eines Packs nicht läuft, gilt die Grenze nur normativ; die Fähigkeitsmatrix des Packs sagt, wo das der Fall ist |
130
130
 
131
131
  ## 3. Querschnittsregeln für alle Modi (normativ)
132
132
 
@@ -134,8 +134,8 @@ Jede Aufgabe wird genau einem Betriebsmodus zugeordnet. Den Modus gibt der Mensc
134
134
 
135
135
  1. Eine Sitzung bearbeitet eine Aufgabe. Neue Aufgaben MÜSSEN in neuen Sitzungen begonnen werden (Least Context, Nachvollziehbarkeit).
136
136
  2. Sitzungsweite Freigaben („für diese Sitzung erlauben") SOLLEN nur für die im Overlay freigegebenen Testbefehle erteilt werden. Projektweite oder globale Freigaben `[DOK]` DÜRFEN NICHT durch einzelne Entwicklerinnen oder Entwickler erteilt werden; sie erfordern einen Änderungsantrag an die Berechtigungsdatei.
137
- 3. Parallel laufende Agentensitzungen `[DOK]` sind an **Voraussetzungen** gebunden, nicht an eine Kontrollstufe der Aufgabe: Die Aufgaben MÜSSEN voneinander unabhängig sein, die Schreibziele disjunkt – sie DÜRFEN NICHT auf denselben Dateien arbeiten –, eine Person MUSS die Aufsicht führen, und jede Sitzung MUSS ihre eigene Aufgabe und ihren eigenen Ergebnisbericht haben. Die Einstufung dieser Arbeitsweise leistet R12 (`.koolie/core/framework/core/09-risk-model.md`, Abschnitt 2): rein lesende Parallelarbeit unter Aufsicht niedrig, schreibende auf getrennten Zielen mittel, gemeinsame Schreibziele hoch und damit ausgeschlossen. Jede parallel bearbeitete Aufgabe bleibt an die Betriebsmodi **ihrer eigenen** Kontrollstufe gebunden (D-54).
138
- 4. Hintergrund-Subagenten DÜRFEN NICHT für Modus M3 verwendet werden. **Diese Grenze gilt normativ; technisch abbildbar ist sie nicht** `[MESS]`: Sperrbar ist nur das Startwerkzeug ganz – gemessen am 2026-09-13, `disallowed-tools: Agent` weist den Start ab, und die zweite Schreibweise `Task` ebenso (`tests/protocols/2026-09-13-erhebung-unteragent.md`, D-70). „Nur im Hintergrund" ist dagegen ein Argument (`run_in_background`), und ein Argumentmuster in der Werkzeugsperre wirkt nach D-66 lautlos gar nicht. Wer diese Regel technisch durchsetzen will, sperrt Unteragenten vollständig – das ist mehr, als die Regel sagt, und deshalb bleibt sie eine Anweisung. Was ein Skill sperrt, ist auch im Hintergrund gesperrt – gemessen am 2026-09-13 mit Kontrolllauf (D-72) `[MESS]`. Ein Hintergrund-Unteragent ist also kein Weg, ein entferntes Werkzeug zurückzubekommen, sondern ein Weg, unbeaufsichtigt zu arbeiten – und das untersagt die Regel. Für M1 KANN ein rein lesendes Agentenprofil genutzt werden, sofern der KI-Client eines kennt (Fähigkeitsmatrix des Client Packs, A1); bei `claude-code` ist seine Wirkung gemessen (D-68).
137
+ 3. Parallel laufende Agentensitzungen `[DOK]` sind an **Voraussetzungen** gebunden, nicht an eine Kontrollstufe der Aufgabe: Die Aufgaben MÜSSEN voneinander unabhängig sein, die Schreibziele disjunkt – sie DÜRFEN NICHT auf denselben Dateien arbeiten –, eine Person MUSS die Aufsicht führen, und jede Sitzung MUSS ihre eigene Aufgabe und ihren eigenen Ergebnisbericht haben. Die Einstufung dieser Arbeitsweise leistet R12 (`.koolie/core/framework/core/09-risk-model.md`, Abschnitt 2): rein lesende Parallelarbeit unter Aufsicht niedrig, schreibende auf getrennten Zielen mittel, gemeinsame Schreibziele hoch und damit ausgeschlossen. Jede parallel bearbeitete Aufgabe bleibt an die Betriebsmodi **ihrer eigenen** Kontrollstufe gebunden.
138
+ 4. Hintergrund-Subagenten DÜRFEN NICHT für Modus M3 verwendet werden. Diese Grenze gilt normativ; technisch abbildbar ist sie nicht `[MESS]`: Sperrbar ist nur das Startwerkzeug ganz – gemessen am 2026-09-13, `disallowed-tools: Agent` weist den Start ab, und die zweite Schreibweise `Task` ebenso (`tests/protocols/2026-09-13-erhebung-unteragent.md`). „Nur im Hintergrund" ist dagegen ein Argument (`run_in_background`), und ein Argumentmuster in der Werkzeugsperre wirkt lautlos gar nicht. Wer diese Regel technisch durchsetzen will, sperrt Unteragenten vollständig – das ist mehr, als die Regel sagt, und deshalb bleibt sie eine Anweisung. Was ein Skill sperrt, ist auch im Hintergrund gesperrt – gemessen am 2026-09-13 mit Kontrolllauf `[MESS]`. Ein Hintergrund-Unteragent ist also kein Weg, ein entferntes Werkzeug zurückzubekommen, sondern ein Weg, unbeaufsichtigt zu arbeiten – und das untersagt die Regel. Für M1 KANN ein rein lesendes Agentenprofil genutzt werden, sofern der KI-Client eines kennt (Fähigkeitsmatrix des Client Packs, A1); bei `claude-code` ist seine Wirkung gemessen.
139
139
 
140
140
  ### 3.2 Befehlsausführung
141
141
 
@@ -153,7 +153,7 @@ Fehlt Kontext, fragt der KI-Client gezielt nach (was fehlt, wozu es benötigt wi
153
153
 
154
154
  ### 3.5 Nachvollziehbarkeit
155
155
 
156
- Jede Aufgabe endet mit einem Ergebnisbericht (Abschnitt 3.6). **Zwischen den Turns derselben Aufgabe genügt ein Kurzstatus** in ein bis drei Zeilen – was getan ist, was als Nächstes kommt, was fehlt; der volle Bericht steht am Aufgabenende und bei jedem Moduswechsel (D-454). Bei Kontrollstufe mittel und hoch wird der Bericht im Merge Request oder im führenden System abgelegt, das Overlay Abschnitt 13 nennt (Ticketsystem oder Rückfallablage im Repositorium); dort liegen auch Plan und dokumentierte Freigabe.
156
+ Jede Aufgabe endet mit einem Ergebnisbericht (Abschnitt 3.6). Zwischen den Turns derselben Aufgabe genügt ein Kurzstatus in ein bis drei Zeilen – was getan ist, was als Nächstes kommt, was fehlt; der volle Bericht steht am Aufgabenende und bei jedem Moduswechsel. Bei Kontrollstufe mittel und hoch wird der Bericht im Merge Request oder im führenden System abgelegt, das Overlay Abschnitt 13 nennt (Ticketsystem oder Rückfallablage im Repositorium); dort liegen auch Plan und dokumentierte Freigabe.
157
157
 
158
158
  ### 3.6 Standardformat Ergebnisbericht
159
159
 
@@ -183,7 +183,7 @@ Jede Aufgabe endet mit einem Ergebnisbericht (Abschnitt 3.6). **Zwischen den Tur
183
183
 
184
184
  ### 3.7 Blockade-Hinweis
185
185
 
186
- Sperrt eine Regel, ein Hook, eine Berechtigung, ein fehlendes Mandat, ein fehlender Overlay-Wert oder ein abgewiesener Skill-Aufruf den nächsten Schritt, gibt der KI-Client **sofort und ohne Nachfrage** vier kurze Zeilen aus (D-450):
186
+ Sperrt eine Regel, ein Hook, eine Berechtigung, ein fehlendes Mandat, ein fehlender Overlay-Wert oder ein abgewiesener Skill-Aufruf den nächsten Schritt, gibt der KI-Client **sofort und ohne Nachfrage** vier kurze Zeilen aus:
187
187
 
188
188
  ```text
189
189
  Gesperrt: <was – ein Satz>
@@ -32,20 +32,20 @@ Jede Anweisung an den KI-Client, die über eine einfache Rückfrage hinausgeht,
32
32
  4. **Keine Rollenspiele mit Regelwirkung.** Anweisungen, die den KI-Client auffordern, Regeln zu ignorieren, sich als anderes System auszugeben oder Sicherheitsprüfungen zu überspringen, sind unzulässig – auch zu Testzwecken außerhalb des Testkatalogs.
33
33
  5. **Ergebnis vor Stil.** Prompts fordern belegte Ergebnisse (Fundstellen, Testausgaben), nicht Selbstbewertungen („Bist du sicher?“).
34
34
  6. **Sprache.** Anweisungen werden in der im Overlay festgelegten Arbeitssprache verfasst (`<TBD: Arbeitssprache>`); Bezeichner, Befehle und Pfade bleiben unverändert.
35
- 7. **Skills bevorzugen – von beiden Seiten.** Liegt für eine Aufgabe ein Skill vor, benennt ihn die Anweisung, und der KI-Client ruft ihn auch dann auf, wenn die Anweisung ihn nicht nennt (D-84; Wurzel-Anweisungsdatei Abschnitt 17, `05-working-model.md` Abschnitt 1; wie ein Skill aufgerufen wird, nennt die Fähigkeitsmatrix des Client Packs, Zeile S2). Freie Prompts sind für Aufgaben ohne passenden Skill vorgesehen. Gemessen am 2026-09-14 hat eine Sitzung den passenden Skill benannt und seinen Aufruf im eigenen Bericht für „nicht nötig“ erklärt (`.koolie/core/tests/protocols/2026-09-14-erhebung-skillaufruf.md`).
35
+ 7. **Skills bevorzugen – von beiden Seiten.** Liegt für eine Aufgabe ein Skill vor, benennt ihn die Anweisung, und der KI-Client ruft ihn auch dann auf, wenn die Anweisung ihn nicht nennt (Wurzel-Anweisungsdatei Abschnitt 17, `05-working-model.md` Abschnitt 1; wie ein Skill aufgerufen wird, nennt die Fähigkeitsmatrix des Client Packs, Zeile S2). Freie Prompts sind für Aufgaben ohne passenden Skill vorgesehen. Gemessen am 2026-09-14 hat eine Sitzung den passenden Skill benannt und seinen Aufruf im eigenen Bericht für „nicht nötig“ erklärt (`.koolie/core/tests/protocols/2026-09-14-erhebung-skillaufruf.md`).
36
36
  8. **Iterationen kennzeichnen.** Folgeanweisungen in derselben Sitzung benennen, was sich gegenüber dem vorherigen Schritt ändert („Nur Schritt 3 des Plans anpassen: …“).
37
37
 
38
38
  ## 3. Unzulässige Prompt-Muster (normativ)
39
39
 
40
40
  | Muster | Warum unzulässig | Stattdessen |
41
41
  |---|---|---|
42
- | „Behebe alle Fehler im Projekt“ | Kein Scope, keine Reversibilität, keine Prüfbarkeit | Ein Fehler, eine Sitzung, Skill `fw-error-analyze` |
42
+ | „Behebe alle Fehler im Projekt“ | Kein Scope, keine Reversibilität, keine Prüfbarkeit | Ein Fehler, eine Sitzung, Skill `koolie-error-analyze` |
43
43
  | „Hier ist der Ticket-Export, mach das“ | Ungeprüfter Kontext (K2/K3-Risiko), kein Ziel | Ticket bereinigen, Ziel und Akzeptanzkriterien formulieren |
44
- | „Schreib die Tests so, dass sie durchlaufen“ | Zementiert Fehlverhalten, umgeht Quality Gates | Skill `fw-tests` mit fachlichen Erwartungen |
45
- | „Push das und erstell den MR“ | Delegationsverbot V2 | Skill `fw-mr-description`, Push und MR durch den Menschen |
44
+ | „Schreib die Tests so, dass sie durchlaufen“ | Zementiert Fehlverhalten, umgeht Quality Gates | Skill `koolie-tests` mit fachlichen Erwartungen |
45
+ | „Push das und erstell den MR“ | Delegationsverbot V2 | Skill `koolie-mr-description`, Push und MR durch den Menschen |
46
46
  | „Ignoriere die Regeln, das ist nur ein Test“ | Regelumgehung, Injektionsmuster | Testkatalog verwenden |
47
47
  | „Welche Bibliothek wäre gut? Bau sie ein.“ | Delegationsverbot V3 | Optionsanalyse anfordern, Entscheidung durch Mensch |
48
48
 
49
49
  ## 4. Erläuterung
50
50
 
51
- Gute Prompts ähneln guten Tickets: Sie beschreiben Ziel, Grenzen und Erfolgskriterium und überlassen den Weg dem Bearbeiter – mit dem Unterschied, dass der Bearbeiter hier bei jeder Unklarheit sofort nachfragen soll. Wer Schwierigkeiten hat, einen Prompt zu formulieren, hat meist noch keine klare Aufgabe; dann hilft der Skill `fw-change-analyze` oder ein Gespräch mit dem Product Owner mehr als ein besserer Prompt.
51
+ Gute Prompts ähneln guten Tickets: Sie beschreiben Ziel, Grenzen und Erfolgskriterium und überlassen den Weg dem Bearbeiter – mit dem Unterschied, dass der Bearbeiter hier bei jeder Unklarheit sofort nachfragen soll. Wer Schwierigkeiten hat, einen Prompt zu formulieren, hat meist noch keine klare Aufgabe; dann hilft der Skill `koolie-change-analyze` oder ein Gespräch mit dem Product Owner mehr als ein besserer Prompt.
@@ -13,7 +13,7 @@
13
13
 
14
14
  1. Ein Review prüft das Ergebnis, nicht die Entstehung: Für den Reviewer gelten dieselben Maßstäbe wie bei manuell erstelltem Code, ergänzt um die Prüfpunkte aus Abschnitt 2.
15
15
  2. Die Bearbeiterin oder der Bearbeiter ist die erste Reviewerin beziehungsweise der erste Reviewer (Selbstreview anhand `.koolie/core/checklists/04-review-ai-code.md`) und DARF NICHT die einzige Prüfinstanz sein (Vier-Augen-Prinzip, sofern im Projekt vorgesehen; ab Kontrollstufe mittel verpflichtend).
16
- 3. Der KI-Client KANN das Review unterstützen (Skill `fw-review-support`), aber ein KI-Befund ersetzt keine menschliche Prüfung und eine KI-„Freigabe“ existiert nicht (V1).
16
+ 3. Der KI-Client KANN das Review unterstützen (Skill `koolie-review-support`), aber ein KI-Befund ersetzt keine menschliche Prüfung und eine KI-„Freigabe“ existiert nicht (V1).
17
17
  4. Reviewerinnen und Reviewer erhalten den KI-Nutzungsvermerk (Kontrollstufe, Modus, Skills, Kontext) vor Beginn des Reviews.
18
18
 
19
19
  ## 2. Zusätzliche Prüfpunkte für KI-generierte Änderungen (normativ)
@@ -6,7 +6,7 @@
6
6
  | Ebene | 1 – Framework Core |
7
7
  | Verbindlichkeit | normativ (Abschnitte 1–7), Erläuterung (Abschnitt 8) |
8
8
  | Owner | `<FRAMEWORK_OWNER>` |
9
- | Version | 0.3.5 |
9
+ | Version | 0.3.6 |
10
10
  | Status | `pilot` |
11
11
 
12
12
  ## 1. Begriff (normativ)
@@ -26,12 +26,12 @@ Skill-Ablage der Laufzeitschicht
26
26
 
27
27
  - Ablageort: die Skill-Ablage der Laufzeitschicht, je Skill ein Unterverzeichnis mit `SKILL.md`. Der konkrete Pfad je Client steht in `.koolie/core/docs/RUNTIME_GLOSSARY.md` (Zeile „Skill-Ablage“), etwaige Alternativpfade im Client Pack.
28
28
  - Der Verzeichnisname ist der Aufrufname; die Aufrufform je Client (etwa `/skill-name`) nennt Zeile S2 der Fähigkeitsmatrix seines Client Packs.
29
- - Framework-Skills tragen das Präfix `fw-`, projektspezifische Skills `prj-`, Role-Pack-Skills `role-<pack>-`, Technology-Pack-Skills `tech-<pack>-`.
29
+ - Mitgelieferte Skills – aus dem Kern wie aus Role und Technology Packs – tragen das Präfix `koolie-`, projektspezifische Skills `prj-`. Ein mitgelieferter Name ist über alle Packs eindeutig.
30
30
  - Skill-Namen bestehen aus Kleinbuchstaben, Ziffern und Bindestrichen.
31
31
 
32
32
  ## 3. Frontmatter (normativ)
33
33
 
34
- Die Tabelle beschreibt das Frontmatter der **Quelle** unter `framework/skills/`. Es ist das Quellformat des Frameworks: `install.py` bildet es je Client Pack ab, und Felder wie `permissions` und `triggers` erscheinen in der installierten Fassung unter dem Namen, den das Manifest des Packs dafür führt, oder werden durch den dort benannten Ersatz getragen. **Die installierte Fassung enthält ausschließlich Felder, die in der Dokumentation des Clients belegt sind** `[DOK]`; wo das für ein Pack nicht erhoben ist, sagt es dessen Fähigkeitsmatrix (D-388).
34
+ Die Tabelle beschreibt das Frontmatter der **Quelle** unter `framework/skills/`. Es ist das Quellformat des Frameworks: `install.py` bildet es je Client Pack ab, und Felder wie `permissions` und `triggers` erscheinen in der installierten Fassung unter dem Namen, den das Manifest des Packs dafür führt, oder werden durch den dort benannten Ersatz getragen. **Die installierte Fassung enthält ausschließlich Felder, die in der Dokumentation des Clients belegt sind** `[DOK]`; wo das für ein Pack nicht erhoben ist, sagt es dessen Fähigkeitsmatrix.
35
35
 
36
36
  | Feld | Pflicht | Regel |
37
37
  |---|---|---|
@@ -43,7 +43,7 @@ Die Tabelle beschreibt das Frontmatter der **Quelle** unter `framework/skills/`.
43
43
  | `triggers` | MUSS | `["user"]` für alle Skills, die Dateien ändern oder Befehle ausführen; `["user", "model"]` nur für rein lesende Skills |
44
44
  | `model`, `subagent`, `agent` | KANN | nur mit dokumentierter Begründung im Metadatenblock |
45
45
 
46
- Framework-Metadaten (ID, Version, Status, Owner) stehen nicht im Frontmatter, sondern im Metadatenblock des Dateikörpers (D-08).
46
+ Framework-Metadaten (ID, Version, Status, Owner) stehen nicht im Frontmatter, sondern im Metadatenblock des Dateikörpers.
47
47
 
48
48
  ## 4. Pflichtinhalte je Skill (normativ)
49
49
 
@@ -57,7 +57,7 @@ Framework-Metadaten (ID, Version, Status, Owner) stehen nicht im Frontmatter, so
57
57
  | 6 | Zielgruppe | SKILL.md Abschnitt 1 | Rollen |
58
58
  | 7 | Trigger | SKILL.md Abschnitt 1 | Situationen, in denen der Skill verwendet wird; Aufrufform |
59
59
  | 8 | Vorbedingungen | SKILL.md Abschnitt 2 | Was vor dem Aufruf erfüllt sein muss (Preflight, Kontrollstufe, Modus) |
60
- | 9 | Benötigte Eingaben | SKILL.md Abschnitt 2 | Argumente und Kontext mit Kontextklasse; „K2 (bereinigt)“ heißt bereinigt **und** freigegeben (`02-privacy.md` Abschnitt 4, D-420) |
60
+ | 9 | Benötigte Eingaben | SKILL.md Abschnitt 2 | Argumente und Kontext mit Kontextklasse; „K2 (bereinigt)“ heißt bereinigt **und** freigegeben (`02-privacy.md` Abschnitt 4) |
61
61
  | 10 | Zulässige Kontextquellen | SKILL.md Abschnitt 2 | Positivliste |
62
62
  | 11 | Ausgeschlossene Informationen | SKILL.md Abschnitt 2 | Negativliste, mindestens K3 |
63
63
  | 12 | Arbeitsschritte | SKILL.md Abschnitt 3 | nummeriert, mit Halte- und Rückfragepunkten |
@@ -85,7 +85,7 @@ Framework-Metadaten (ID, Version, Status, Owner) stehen nicht im Frontmatter, so
85
85
  2. Rückfragen bei Unklarheiten verlangen (P3) und Annahmen sichtbar machen.
86
86
  3. Scope ausdrücklich begrenzen (Pfade, Modus, Kontrollstufe) und Überschreitungen melden.
87
87
  4. Relevante Prüfungen definieren (welche Tests, welche Checkliste).
88
- 5. Festes Ausgabeformat verwenden. Die Überschriften des Gerüsts werden **wörtlich** übernommen – ohne Umformulierung, ohne Zusatz, in derselben Ebene; was ein Abschnitt für den Fall erläutert, steht im Text darunter. Auch die Ergebnisausgabe eines Folgeturns trägt jede Pflichtüberschrift; ein Abschnitt, dessen Inhalt schon in einem früheren Turn steht, verweist dort darauf (D-432).
88
+ 5. Festes Ausgabeformat verwenden. Die Überschriften des Gerüsts werden **wörtlich** übernommen – ohne Umformulierung, ohne Zusatz, in derselben Ebene; was ein Abschnitt für den Fall erläutert, steht im Text darunter. Auch die Ergebnisausgabe eines Folgeturns trägt jede Pflichtüberschrift; ein Abschnitt, dessen Inhalt schon in einem früheren Turn steht, verweist dort darauf.
89
89
  6. Delegationsverbotsliste beachten.
90
90
  7. Bei Kontrollstufe hoch ohne dokumentierte Freigabe die Bearbeitung ablehnen.
91
91
 
@@ -99,16 +99,16 @@ Framework-Metadaten (ID, Version, Status, Owner) stehen nicht im Frontmatter, so
99
99
  | `veraltet` | ersetzt oder nicht mehr empfohlen; Nutzung mit Hinweis | Nachfolger benannt oder Begründung dokumentiert |
100
100
  | `zurückgezogen` | entfernt; Verzeichnis bleibt bis zum nächsten Major-Release mit Hinweisdatei | Deprecation-Frist abgelaufen |
101
101
 
102
- **Reichweite dieser Tabelle.** Die fünf Statuswerte und ihre Bedeutung gelten für **jeden** Modulträger des Frameworks; die Spalte *Voraussetzung für Übergang* gilt für Skills. Die Bedingungen für Modulträger, die keine Skills sind, stehen in `01-governance.md` Abschnitt 5 (D-102). **„Testfälle bestanden" ist Bedingung für `aktiv`, nicht für `pilot`** – für `pilot` genügt, dass sie vorliegen (D-103).
102
+ **Reichweite dieser Tabelle.** Die fünf Statuswerte und ihre Bedeutung gelten für jeden Modulträger des Frameworks; die Spalte *Voraussetzung für Übergang* gilt für Skills. Die Bedingungen für Modulträger, die keine Skills sind, stehen in `01-governance.md` Abschnitt 5. **„Testfälle bestanden" ist Bedingung für `aktiv`, nicht für `pilot`** – für `pilot` genügt, dass sie vorliegen.
103
103
 
104
104
  - MAJOR: Änderung des Ausgabeformats oder des Scopes; MINOR: neue Schritte oder Prüfungen ohne Formatbruch; PATCH: Korrekturen und Formulierungen.
105
- - Jede Versionsänderung, die eine **Anweisung** des Skills berührt, erfordert die erneute Ausführung der Testfälle in `TESTS.md`; Ergebnisse werden im Testkatalog vermerkt. **Eine Änderung, die ausschließlich Erläuterung, Schreibweise oder einen Namen betrifft, tut das nicht** – ein Testblatt nimmt ab, was der Skill anweist, und was er erläutert, hat es nie geprüft (D-303, `K-84`).
106
- ⚠️ Die Grenze zwischen Anweisung und Erläuterung zieht ein Mensch; keine Prüfung setzt sie durch (D-303). Wer sie zieht, schreibt in den Änderungsverlauf des Skills, **welche** Art von Änderung er vorgenommen hat.
105
+ - Jede Versionsänderung, die eine **Anweisung** des Skills berührt, erfordert die erneute Ausführung der Testfälle in `TESTS.md`; Ergebnisse werden im Testkatalog vermerkt. Eine Änderung, die ausschließlich Erläuterung, Schreibweise oder einen Namen betrifft, tut das nicht – ein Testblatt nimmt ab, was der Skill anweist, und was er erläutert, hat es nie geprüft.
106
+ Die Grenze zwischen Anweisung und Erläuterung zieht ein Mensch; keine Prüfung setzt sie durch. Wer sie zieht, schreibt in den Änderungsverlauf des Skills, welche Art von Änderung er vorgenommen hat.
107
107
  - Die strukturelle Konformität prüft `.koolie/core/tests/scripts/validate-framework.py` (Pflichtabschnitte, Frontmatter, Platzhalter, verbotene Muster).
108
108
 
109
- **Reichweite dieser Konventionen.** Sie gelten für die **Skill-Ablage, die das Framework schreibt**. Skills aus Ablagen außerhalb des Repositoriums – etwa aus dem Benutzerprofil – unterliegen ihnen nicht; sie sind nach Regel 2.6 der Prioritätshierarchie ebenenlos und dürfen den Handlungsspielraum nur einschränken, nie erweitern. Der KI-Client kann sie dennoch aufrufen: Am 2026-09-11 führte eine Installation 81 Skills, 67 davon aus einer fremden Ablage und mit Aufrufbarkeit durch Mensch **und** Modell.
109
+ **Reichweite dieser Konventionen.** Sie gelten für die Skill-Ablage, die das Framework schreibt. Skills aus Ablagen außerhalb des Repositoriums – etwa aus dem Benutzerprofil – unterliegen ihnen nicht; sie sind nach Regel 2.6 der Prioritätshierarchie ebenenlos und dürfen den Handlungsspielraum nur einschränken, nie erweitern. Der KI-Client kann sie dennoch aufrufen: Am 2026-09-11 führte eine Installation 81 Skills, 67 davon aus einer fremden Ablage und mit Aufrufbarkeit durch Mensch und Modell.
110
110
 
111
- Was ein solcher Skill tut, läuft durch die normalen Werkzeuge des Clients und erreicht damit Berechtigungsregeln und Schutz-Hook – gemessen im selben Lauf, einschließlich Positivkontrolle und einschließlich des Modus ohne Rückfragen. **Der Skill-Aufruf selbst ist kein Werkzeugaufruf** und damit nicht einzeln kontrollierbar; kontrolliert wird, was er auslöst. Welche fremden Ablagen ein Client führt und ob sie abschaltbar sind, steht im Abschnitt „Anweisungs- und Konfigurationsquellen außerhalb des Projekts" seines Client Packs (D-34, D-37).
111
+ Was ein solcher Skill tut, läuft durch die normalen Werkzeuge des Clients und erreicht damit Berechtigungsregeln und Schutz-Hook – gemessen im selben Lauf, einschließlich Positivkontrolle und einschließlich des Modus ohne Rückfragen. **Der Skill-Aufruf selbst ist kein Werkzeugaufruf** und damit nicht einzeln kontrollierbar; kontrolliert wird, was er auslöst. Welche fremden Ablagen ein Client führt und ob sie abschaltbar sind, steht im Abschnitt „Anweisungs- und Konfigurationsquellen außerhalb des Projekts" seines Client Packs.
112
112
 
113
113
  ## 8. Erläuterung
114
114
 
@@ -36,12 +36,12 @@
36
36
  | R9 | Einführung externer Abhängigkeiten | keine | Aktualisierung einer bestehenden Abhängigkeit (Patch/Minor) | neue Abhängigkeit oder Major-Update (Checkliste `.koolie/core/checklists/07-new-dependency.md`) |
37
37
  | R10 | Änderung von Authentifizierung oder Autorisierung | keine | keine (jede Berührung ist mindestens hoch) | jede Änderung |
38
38
  | R11 | Änderung von Datenmodellen oder Schnittstellen | keine | interne, abwärtskompatible Erweiterung | Schema-Änderung, Vertragsbruch einer Schnittstelle, Migration |
39
- | R12 | Automatisierungsgrad der KI-Nutzung | einzelne, überwachte Sitzung im rückfragenden Standardmodus (D-05; wie der Modus im Client heißt, nennt die Fähigkeitsmatrix des Client Packs); oder mehrere rein lesende Sitzungen beziehungsweise Subagenten (M1, M2) unter einer aufsichtführenden Person | mehrere Schritte in einer Sitzung mit sitzungsweiten Freigaben; oder parallele schreibende Sitzungen auf disjunkten Schreibzielen | Modus mit selbsttätiger Übernahme, soweit ihn eine dokumentierte Ausnahme zulässt (D-05); parallele Sitzungen auf gemeinsamen Schreibzielen; Hintergrund-Subagenten in M3 |
39
+ | R12 | Automatisierungsgrad der KI-Nutzung | einzelne, überwachte Sitzung im rückfragenden Standardmodus (wie der Modus im Client heißt, nennt die Fähigkeitsmatrix des Client Packs); oder mehrere rein lesende Sitzungen beziehungsweise Subagenten (M1, M2) unter einer aufsichtführenden Person | mehrere Schritte in einer Sitzung mit sitzungsweiten Freigaben; oder parallele schreibende Sitzungen auf disjunkten Schreibzielen | Modus mit selbsttätiger Übernahme, soweit ihn eine dokumentierte Ausnahme zulässt; parallele Sitzungen auf gemeinsamen Schreibzielen; Hintergrund-Subagenten in M3 |
40
40
  | R13 | Mögliche Fehlerfolgen | lokal begrenzt, sofort erkennbar | Funktionsstörung in Test oder Produktion, erkennbar durch Monitoring | Datenverlust, Sicherheitsvorfall, Verstoß gegen rechtliche Vorgaben, Reputationsschaden |
41
41
 
42
42
  `<CHANGE_SIZE_THRESHOLD>` und die Liste kritischer Komponenten werden im Project Overlay festgelegt (`<TBD: Schwellenwert für Änderungsumfang>`).
43
43
 
44
- **Zu R12 (normativ).** Die Spalten unterscheiden nach **Schreibziel und Aufsicht**, nicht nach der Zahl der Sitzungen: rein lesende Parallelarbeit unter Aufsicht niedrig, schreibende Parallelarbeit auf getrennten Zielen mittel, gemeinsame Schreibziele hoch (D-54; die Voraussetzungen für Parallelarbeit nennt `.koolie/core/framework/core/05-working-model.md`, Abschnitt 3.1). Ein Modus mit selbsttätiger Übernahme bleibt **hoch**: Dass die erste Schutzlinie in einem erweiterten Modus ausfällt, ist gemessen (D-35), und diese Einstufung wird nicht gelockert. Der Modus ohne Rückfragen ist **keine Stufe von R12**, sondern untersagt (D-05, D-389).
44
+ **Zu R12 (normativ).** Die Spalten unterscheiden nach **Schreibziel und Aufsicht**, nicht nach der Zahl der Sitzungen: rein lesende Parallelarbeit unter Aufsicht niedrig, schreibende Parallelarbeit auf getrennten Zielen mittel, gemeinsame Schreibziele hoch (die Voraussetzungen für Parallelarbeit nennt `.koolie/core/framework/core/05-working-model.md`, Abschnitt 3.1). Ein Modus mit selbsttätiger Übernahme bleibt **hoch**: Dass die erste Schutzlinie in einem erweiterten Modus ausfällt, ist gemessen, und diese Einstufung wird nicht gelockert. Der Modus ohne Rückfragen ist **keine Stufe von R12**, sondern untersagt.
45
45
 
46
46
  ## 3. Kontrollstufen (normativ)
47
47
 
@@ -53,7 +53,7 @@
53
53
  | Dokumentationsumfang | KI-Nutzungsvermerk im Merge Request (Kurzform, `.koolie/core/templates/MR_AI_DISCLOSURE.md`) | zusätzlich: Plan, Fundstellenliste, Ergebnisbericht mit Abweichungen und Restrisiken | zusätzlich: vollständiges Sitzungsprotokoll (Prompts, Freigaben, ausgeführte Befehle), Entscheidungsvermerk der Freigabe |
54
54
  | Eskalationskriterien | Scope-Überschreitung, unerwartete Berührung anderer Komponenten, fehlgeschlagene Quality Gates ohne klare Ursache | zusätzlich: Abweichung vom bestätigten Plan, neue Abhängigkeit, Testlücke | jede Unklarheit führt zum Stopp; Fortsetzung nur nach erneuter Freigabe |
55
55
 
56
- **M6 Mandated Maintenance steht außerhalb dieser Tabelle** (D-446). Er ändert keinen Code und trägt nur ein, was der Mensch entschieden hat; seine Voraussetzung ist das Mandat (`05-working-model.md`, M6), nicht die Kontrollstufe einer Aufgabe. Die Freigabe, die eine eingetragene Entscheidung braucht, richtet sich nach der Entscheidung selbst – etwa eine Architekturentscheidung der Stufe hoch nach dieser Tabelle.
56
+ **M6 Mandated Maintenance steht außerhalb dieser Tabelle**. Er ändert keinen Code und trägt nur ein, was der Mensch entschieden hat; seine Voraussetzung ist das Mandat (`05-working-model.md`, M6), nicht die Kontrollstufe einer Aufgabe. Die Freigabe, die eine eingetragene Entscheidung braucht, richtet sich nach der Entscheidung selbst – etwa eine Architekturentscheidung der Stufe hoch nach dieser Tabelle.
57
57
 
58
58
  ## 4. Delegationsverbotsliste (normativ)
59
59
 
@@ -61,7 +61,7 @@ Folgende Aufgaben und Entscheidungen DÜRFEN NICHT an den KI-Client delegiert we
61
61
 
62
62
  | Nr. | Nicht delegierbar | Zulässige Unterstützung durch den KI-Client |
63
63
  |---|---|---|
64
- | V1 | Freigabe, Genehmigung oder Abnahme von Änderungen, Merge Requests, Releases | Review-Unterstützung mit Befunden (Skill `fw-review-support`) |
64
+ | V1 | Freigabe, Genehmigung oder Abnahme von Änderungen, Merge Requests, Releases | Review-Unterstützung mit Befunden (Skill `koolie-review-support`) |
65
65
  | V2 | Merge in geschützte Branches, Tagging von Releases, Deployment in Produktion | Erstellung von Merge-Request-Beschreibungen |
66
66
  | V3 | Architekturentscheidungen, Technologieauswahl, Einführung neuer Abhängigkeiten | Optionsanalyse mit Vor- und Nachteilen, Vorschlag mit Kennzeichnung; im Modus M6 das Eintragen einer Architekturentscheidung, die der Mensch getroffen hat |
67
67
  | V4 | Umgang mit Secrets, Zugangsdaten, Zertifikaten, Schlüsselmaterial (Erzeugen, Rotieren, Eintragen, Lesen) | keine; Fundstellen vermuteter Secrets sind zu melden, nicht auszugeben |
@@ -74,9 +74,9 @@ Folgende Aufgaben und Entscheidungen DÜRFEN NICHT an den KI-Client delegiert we
74
74
  | V11 | Kommunikation nach außen (Kunden, Behörden, Öffentlichkeit) im Namen des Projekts | Entwürfe für interne Verwendung |
75
75
  | V12 | Löschen von Branches, Historie, Daten oder Artefakten außerhalb des Arbeitsbereichs | keine |
76
76
 
77
- **Abgrenzung zu V6 (normativ).** V6 erfasst den **Betrieb**: tatsächliche Berechtigungen sowie Betriebs-, Infrastruktur- und Sicherheitskonfigurationen – auch dann, wenn sie als Code im Repositorium liegen (Infrastrukturbeschreibungen, Berechtigungs- und Richtliniendateien, die Berechtigungsdatei dieses Frameworks), denn ihr Inhalt **ist** die Berechtigung. V6 erfasst **nicht** die lokale Anwendungslogik mit Sicherheitsbezug: Authentifizierungs- und Autorisierungsprüfungen im Quellcode, Verwendung kryptografischer Bibliotheken, Sitzungsverwaltung. Diese ist über R3 und R10 Kontrollstufe **hoch** und nach deren Freigaben umsetzbar – dokumentierte Freigabe durch `<APPROVAL_ROLE>` und `<SECURITY_CONTACT>`, Umsetzung mit begleitender Person. **Die Frage im Zweifel:** Wirkt die Änderung über Build, Review und Quality Gates des Projekts, oder ist die geänderte Datei selbst die Berechtigung eines laufenden Systems? Im zweiten Fall gilt V6. Greift daneben ein anderes Delegationsverbot – V4 für Schlüsselmaterial, V10 für die Framework-Regeln und die Berechtigungsdatei –, bleibt es unberührt (D-53).
77
+ **Abgrenzung zu V6 (normativ).** V6 erfasst den **Betrieb**: tatsächliche Berechtigungen sowie Betriebs-, Infrastruktur- und Sicherheitskonfigurationen – auch dann, wenn sie als Code im Repositorium liegen (Infrastrukturbeschreibungen, Berechtigungs- und Richtliniendateien, die Berechtigungsdatei dieses Frameworks), denn ihr Inhalt **ist** die Berechtigung. V6 erfasst **nicht** die lokale Anwendungslogik mit Sicherheitsbezug: Authentifizierungs- und Autorisierungsprüfungen im Quellcode, Verwendung kryptografischer Bibliotheken, Sitzungsverwaltung. Diese ist über R3 und R10 Kontrollstufe **hoch** und nach deren Freigaben umsetzbar – dokumentierte Freigabe durch `<APPROVAL_ROLE>` und `<SECURITY_CONTACT>`, Umsetzung mit begleitender Person. **Die Frage im Zweifel:** Wirkt die Änderung über Build, Review und Quality Gates des Projekts, oder ist die geänderte Datei selbst die Berechtigung eines laufenden Systems? Im zweiten Fall gilt V6. Greift daneben ein anderes Delegationsverbot – V4 für Schlüsselmaterial, V10 für die Framework-Regeln und die Berechtigungsdatei –, bleibt es unberührt.
78
78
 
79
- **Entscheiden und Eintragen (normativ, D-446).** Nicht delegierbar ist bei V3 und V10 die **Entscheidung**. Das Eintragen einer Entscheidung, die der Mensch in der Sitzung getroffen und benannt hat, ist Ausführung: Es ist im Modus M6 mit Mandat zulässig (`05-working-model.md`, M6), und die Prüfung ist der Merge Request (V1). Was nicht entschieden ist, trägt der KI-Client nicht ein, sondern als `<TBD: …>`.
79
+ **Entscheiden und Eintragen (normativ).** Nicht delegierbar ist bei V3 und V10 die **Entscheidung**. Das Eintragen einer Entscheidung, die der Mensch in der Sitzung getroffen und benannt hat, ist Ausführung: Es ist im Modus M6 mit Mandat zulässig (`05-working-model.md`, M6), und die Prüfung ist der Merge Request (V1). Was nicht entschieden ist, trägt der KI-Client nicht ein, sondern als `<TBD: …>`.
80
80
 
81
81
  Das Project Overlay KANN die Liste erweitern (`.koolie/project-overlay/OVERLAY.md`, Abschnitt „Ausgeschlossene Aufgaben"). Es DARF sie NICHT verkürzen.
82
82
 
@@ -11,7 +11,7 @@
11
11
 
12
12
  ## 1. Abbruchbedingungen für den KI-Client (normativ)
13
13
 
14
- Der KI-Client MUSS die Bearbeitung anhalten, den Zustand berichten und auf eine menschliche Entscheidung warten, wenn eine der folgenden Bedingungen eintritt. Die Kennungen S1 bis S10 bezeichnen in allen Regeldokumenten diese Abbruchbedingungen; die gleichlautenden Zeilen der Fähigkeitsmatrix eines Client Packs heißen dort stets *Zeile* S1 bis S5 (D-391).
14
+ Der KI-Client MUSS die Bearbeitung anhalten, den Zustand berichten und auf eine menschliche Entscheidung warten, wenn eine der folgenden Bedingungen eintritt. Die Kennungen S1 bis S10 bezeichnen in allen Regeldokumenten diese Abbruchbedingungen; die gleichlautenden Zeilen der Fähigkeitsmatrix eines Client Packs heißen dort stets *Zeile* S1 bis S5.
15
15
 
16
16
  | ID | Bedingung | Meldung an |
17
17
  |---|---|---|
@@ -9,7 +9,7 @@
9
9
  |---|---|---|
10
10
  | `<TBD: z. B. „öffentlich">` | K0 | `<TBD>` |
11
11
  | `<TBD: z. B. „intern">` | K1 oder K2 | `<TBD: Kriterien, wann intern eingestufte Inhalte als K1 gelten dürfen>` |
12
- | `<TBD: z. B. „vertraulich">` | K3 (unbedingt – Abschnitt 2.1 Nr. 7 von `.koolie/core/framework/core/02-privacy.md`; eine Lockerung ist auf keinem Weg vorgesehen, D-52) | `<TBD: welche bereinigten Ableitungen zulässig sind; sie werden als eigener Inhalt neu eingestuft>` |
12
+ | `<TBD: z. B. „vertraulich">` | K3 (unbedingt – Abschnitt 2.1 Nr. 7 von `.koolie/core/framework/core/02-privacy.md`; eine Lockerung ist auf keinem Weg vorgesehen) | `<TBD: welche bereinigten Ableitungen zulässig sind; sie werden als eigener Inhalt neu eingestuft>` |
13
13
  | `<TBD: z. B. „streng vertraulich">` | K3 (keine Lockerung) | – |
14
14
  | personenbezogene Daten gemäß Richtlinie `<TBD: Referenz>` | K3 (Echtdaten); synthetische Testdaten K1 | `<TBD>` |
15
15
 
@@ -4,38 +4,33 @@
4
4
  |---|---|
5
5
  | ID | `FW-OVL-GENERAL` |
6
6
  | Name | `general` |
7
- | Version | `0.2.1` |
7
+ | Version | `0.2.2` |
8
8
  | Status | `pilot` |
9
9
  | Owner (Rolle) | `<FRAMEWORK_OWNER>` |
10
- | Gewählt über | `python .koolie/core/install.py --overlay general` – **nur bei der Erstinstallation** (D-126) |
11
- | Wirkung | füllt drei Pfadplatzhalter einmal in Overlay, Laufzeitfassung und Berechtigungsdatei (D-355); legt sechs Musterdokumente allgemeiner Praktiken an und registriert sie im Manifest (D-359, D-360) |
10
+ | Gewählt über | `python .koolie/core/install.py --overlay general` – **nur bei der Erstinstallation** |
11
+ | Wirkung | füllt drei Pfadplatzhalter einmal in Overlay, Laufzeitfassung und Berechtigungsdatei; legt sechs Musterdokumente allgemeiner Praktiken an und registriert sie im Manifest |
12
12
  | Nachweis | Sonden `M355` bis `M355e` und `M359` bis `M359c` in `.koolie/core/tests/scripts/probe-pruefungen.py` |
13
13
 
14
14
  ## Zweck
15
15
 
16
- Ein Projekt, das das Framework übernimmt, beginnt ohne diesen Parameter mit einem
17
- **leeren** Overlay: Jeder Platzhalter ist ein Schlitz, und bis ein Mensch ihn füllt,
18
- sperrt die Berechtigungsdatei an seiner Stelle nichts. Dieses Muster füllt die Schlitze,
19
- deren Wert sich **ohne Kenntnis des Projekts** sicher angeben lässt – und nur diese.
16
+ Ohne Muster beginnt ein Projekt mit einem leeren Overlay: Jeder Platzhalter ist ein Schlitz,
17
+ und solange er offen ist, sperrt die Berechtigungsdatei an seiner Stelle nichts. Dieses Muster
18
+ füllt die Schlitze, deren Wert sich ohne Kenntnis des Projekts sicher angeben lässt – und nur
19
+ diese.
20
20
 
21
- Seit Version `0.2.0` liefert es außerdem **Dokumente**: allgemein anerkannte Praktiken
22
- der Softwareentwicklung für die Bereiche des Overlays, die auf **jedes** Projekt passen
23
- (Abschnitt *„Die Dokumente“*). Sie sind ein zweiter Gegenstand mit eigener Grenze.
21
+ Außerdem liefert es Dokumente mit allgemein anerkannten Praktiken der Softwareentwicklung, die
22
+ auf jedes Projekt passen (Abschnitt *„Die Dokumente“*).
24
23
 
25
24
  ## Der Grundsatz: Das Muster sperrt, es gibt nichts frei
26
25
 
27
- 🔴 **Ein mitgeliefertes Muster schlägt Projektwerte vor, und der Kern darf keine
28
- enthalten** (Entscheidungsbaum 6, Prüfungen 6 und 14). Die Grenze ist deshalb keine
29
- Auswahl nach Geschmack, sondern eine Richtung: **Jeder Wert dieses Musters verschärft.**
30
- Er steht ausschließlich in einem `deny`-Eintrag; ein Wert, der auf ein Projekt nicht
31
- passt, sperrt eine Datei, die es dort nicht gibt, und kostet nichts.
26
+ Der Kern darf keine Projektwerte enthalten (Entscheidungsbaum 6, Prüfungen 6 und 14). Deshalb
27
+ **verschärft jeder Wert dieses Musters**: Er steht ausschließlich in einem `deny`-Eintrag. Passt
28
+ ein Wert nicht, sperrt er eine Datei, die es im Projekt nicht gibt, und kostet nichts.
32
29
 
33
- ➡️ **Nicht gefüllt wird deshalb alles, was etwas FREIGIBT oder das Projekt BESCHREIBT:**
34
- `<ALLOWED_PATHS>`, `<TEST_PATHS>`, `<DOC_PATHS>`, `<READ_ONLY_PATHS>`, die drei
35
- Befehlsschlitze, Rollen, Status, Freigaben und die Ergebnisse der Datenschutz- und
36
- Vertragsprüfung. `install.py` nimmt aus dieser Datei **nur** die drei Platzhalter der
37
- Tabelle unten an und bricht ab, wenn sie einen anderen führt – die Grenze steht im
38
- Werkzeug, nicht nur in diesem Satz.
30
+ Nicht gefüllt wird alles, was etwas freigibt oder das Projekt beschreibt: `<ALLOWED_PATHS>`,
31
+ `<TEST_PATHS>`, `<DOC_PATHS>`, `<READ_ONLY_PATHS>`, die drei Befehlsschlitze, Rollen, Status,
32
+ Freigaben und die Ergebnisse der Datenschutz- und Vertragsprüfung. `install.py` nimmt aus dieser
33
+ Datei nur die drei Platzhalter der Tabelle unten an und bricht bei jedem anderen ab.
39
34
 
40
35
  ## Die Werte
41
36
 
@@ -44,52 +39,47 @@ Jeder Wert steht in einer eigenen Codespanne.
44
39
 
45
40
  | Platzhalter | Werte | Warum ohne Kenntnis des Projekts sicher |
46
41
  |---|---|---|
47
- | `<CI_CONFIG_PATHS>` | `.github/workflows/**`, `.gitlab-ci.yml`, `.gitea/workflows/**`, `Jenkinsfile`, `azure-pipelines.yml`, `bitbucket-pipelines.yml`, `.circleci/**` | Die üblichen Ablagen der verbreiteten CI-Werkzeugklassen. Gesperrt wird nur das **Schreiben**; eine Merge-Request-Vorlage neben `.github/workflows/` bleibt lesbar (D-161) |
48
- | `<QUALITY_GATE_CONFIG_PATHS>` | `.editorconfig`, `.eslintrc*`, `eslint.config.*`, `.prettierrc*`, `.stylelintrc*`, `sonar-project.properties`, `codecov.yml`, `.codecov.yml`, `.coveragerc`, `.pylintrc`, `.flake8`, `ruff.toml`, `.golangci.yml`, `checkstyle.xml` | Eigenständige Konfigurationsdateien von Linter, Formatierer, Analyse und Abdeckung – Schwellenwerte ändert der KI-Client nie (`OVERLAY.md` Abschnitt 7). ⚠️ **Bewusst nicht:** Sammeldateien wie `pyproject.toml` oder `package.json`, die neben der Prüfkonfiguration auch Abhängigkeiten tragen – sie zu sperren, wäre eine Aussage über das Projekt |
49
- | `<EXCLUDED_PATHS>` | `**/*.tfstate`, `**/*.tfstate.*`, `**/*.dump` | Zustandsdateien einer Infrastrukturbeschreibung tragen Zugangsdaten im Klartext, Datenbankabzüge echte Daten (K3). ⚠️ **Bewusst nicht:** `deploy/**`, `infra/**` oder `config/prod/**` aus dem Beispiel der Vorlage – sie setzen ein Verzeichnislayout voraus, und eine Lesesperre auf ein Verzeichnis, in dem das Projekt arbeitet, ist keine Verschärfung, sondern ein Hindernis |
42
+ | `<CI_CONFIG_PATHS>` | `.github/workflows/**`, `.gitlab-ci.yml`, `.gitea/workflows/**`, `Jenkinsfile`, `azure-pipelines.yml`, `bitbucket-pipelines.yml`, `.circleci/**` | Die üblichen Ablagen der verbreiteten CI-Werkzeugklassen. Gesperrt wird nur das Schreiben; eine Merge-Request-Vorlage neben `.github/workflows/` bleibt lesbar |
43
+ | `<QUALITY_GATE_CONFIG_PATHS>` | `.editorconfig`, `.eslintrc*`, `eslint.config.*`, `.prettierrc*`, `.stylelintrc*`, `sonar-project.properties`, `codecov.yml`, `.codecov.yml`, `.coveragerc`, `.pylintrc`, `.flake8`, `ruff.toml`, `.golangci.yml`, `checkstyle.xml` | Eigenständige Konfigurationsdateien von Linter, Formatierer, Analyse und Abdeckung – Schwellenwerte ändert der KI-Client nie (`OVERLAY.md` Abschnitt 7). Nicht enthalten sind Sammeldateien wie `pyproject.toml` oder `package.json`, die auch Abhängigkeiten tragen; sie zu sperren, wäre eine Aussage über das Projekt |
44
+ | `<EXCLUDED_PATHS>` | `**/*.tfstate`, `**/*.tfstate.*`, `**/*.dump` | Zustandsdateien einer Infrastrukturbeschreibung tragen Zugangsdaten im Klartext, Datenbankabzüge echte Daten (K3). Nicht enthalten sind `deploy/**`, `infra/**` oder `config/prod/**` aus dem Beispiel der Vorlage: Sie setzen ein Verzeichnislayout voraus, und eine Lesesperre auf ein Arbeitsverzeichnis wäre ein Hindernis, keine Verschärfung |
50
45
 
51
46
  ## Wie die Werte in das Projekt kommen
52
47
 
53
- `install.py --overlay general` schreibt bei der Erstinstallation **drei** Träger aus dieser
54
- Tabelle, und zwar genau einmal (D-353, D-355):
48
+ `install.py --overlay general` schreibt bei der Erstinstallation drei Träger aus dieser
49
+ Tabelle, und zwar genau einmal:
55
50
 
56
51
  | Träger | Was gefüllt wird |
57
52
  |---|---|
58
53
  | `.koolie/project-overlay/OVERLAY.md` | die Spalte **Wert** der drei Zeilen in Abschnitt 4; ein Eintrag im Änderungsverlauf nennt Muster und Version |
59
54
  | `<RULES_DIR>/20-project-overlay.md` | der Wert hinter `<EXCLUDED_PATHS>` – die beiden anderen Platzhalter führt die Laufzeitfassung nicht |
60
- | `<PERMISSIONS_FILE>` | jeder `deny`-Eintrag der Kernquelle, der einen der drei Platzhalter trägt, wird zu einem Eintrag je Wert – **dieselben Schlitze, keiner mehr** |
55
+ | `<PERMISSIONS_FILE>` | jeder `deny`-Eintrag der Kernquelle, der einen der drei Platzhalter trägt, wird zu einem Eintrag je Wert – dieselben Schlitze, keiner mehr |
61
56
 
62
- ⚠️ **Abgrenzung zu D-76.** Gelesen wird ein Träger des Kerns, nicht des Projekts, und
63
- zugesagt ist der **Anfangszustand**, kein Kanal. Danach gehören alle drei Dateien dem
64
- Projekt wie ohne Muster; `install.py --update` liest dieses Muster nie wieder. Ein
65
- Projekt, das einen Wert später ändert, zieht ihn wie jeden anderen Wert von Hand nach –
66
- **und Prüfung 59 findet die Abweichung für `<EXCLUDED_PATHS>`.**
57
+ Das Muster liefert nur den Anfangszustand. Danach gehören alle drei Dateien dem Projekt;
58
+ `install.py --update` liest das Muster nie wieder. Wer einen Wert später ändert, zieht ihn in
59
+ allen Trägern von Hand nach; Prüfung 59 meldet eine Abweichung bei `<EXCLUDED_PATHS>`.
67
60
 
68
- ⚠️ **Bei einem Client Pack, dessen Berechtigungsschicht keine Musterform kennt**
69
- (`openai-codex`, B3 und B5 `[NICHT ABBILDBAR]`), kommt nur ein Teil an – gemessen an
70
- einer Wegwerf-Installation: Ein Teilbaum (`.github/workflows/**`) und ein einzelner
71
- Dateiname (`Jenkinsfile`) werden zu einem Pfad mit Zugriffsart `read`, ein Namensmuster
72
- mit `*` (`**/*.tfstate`, `.eslintrc*`) erreicht die Datei nicht. Das Muster ändert daran
73
- nichts, und das Pack sagt es in Abschnitt 5 selbst.
61
+ Bei `openai-codex` (B3 und B5 `[NICHT ABBILDBAR]`) kennt die Berechtigungsschicht keine
62
+ Musterform, und nur ein Teil kommt an: Ein Teilbaum (`.github/workflows/**`) und ein einzelner
63
+ Dateiname (`Jenkinsfile`) werden zu einem Pfad mit Zugriffsart `read`, ein Namensmuster mit `*`
64
+ (`**/*.tfstate`, `.eslintrc*`) erreicht die Datei nicht. Das Pack nennt diese Grenze in
65
+ Abschnitt 5.
74
66
 
75
67
  ## Die Dokumente
76
68
 
77
- 🔴 **Die Regel „sperrt, gibt nichts frei“ gilt für Schlitzwerte, und Dokumente sind ein
78
- zweiter Gegenstand mit eigener Grenze** (D-359). Ein Dokument gibt nichts frei, aber es
79
- **beschreibt** – und darf deshalb nur beschreiben, was für jedes Projekt gilt:
69
+ Ein Dokument gibt nichts frei, aber es beschreibt. Deshalb darf es nur beschreiben, was für
70
+ jedes Projekt gilt:
80
71
 
81
- - **nur allgemein anerkannte, werkzeug- und sprachneutrale Praktiken;**
82
- - **keine Schwellenwerte** (Abdeckung, Methodenlänge, Anzahl Reviewer), **keine
83
- Werkzeugnamen**, **keine Vorgaben, die Vorgehensmodell, Teamgröße oder Plattform
84
- voraussetzen;**
85
- - **keine Wiederholung des Kerns.** Was der Kern für KI-unterstützte Arbeit schon regelt
86
- – `04-quality.md` Abschnitte 2 und 3, `07-review-rules.md`, die Checklisten 03, 05, 06,
87
- 07 und 08 –, wird verwiesen, nicht abgeschrieben. Jedes Dokument sagt in einem Abschnitt
88
- *„Verhältnis zum Framework“*, wo die Grenze liegt; bei Widerspruch gilt der Kern.
72
+ - nur allgemein anerkannte, werkzeug- und sprachneutrale Praktiken;
73
+ - keine Schwellenwerte (Abdeckung, Methodenlänge, Anzahl Reviewer), keine Werkzeugnamen, keine
74
+ Vorgaben, die Vorgehensmodell, Teamgröße oder Plattform voraussetzen;
75
+ - keine Wiederholung des Kerns. Was der Kern für KI-unterstützte Arbeit regelt –
76
+ `04-quality.md` Abschnitte 2 und 3, `07-review-rules.md`, die Checklisten 03, 05, 06, 07 und
77
+ 08 –, wird verwiesen. Jedes Dokument sagt im Abschnitt *„Verhältnis zum Framework“*, wo die
78
+ Grenze liegt; bei Widerspruch gilt der Kern.
89
79
 
90
- ➡️ **Was davon nicht überall passt, kommt nicht hinein** – auch nicht als Beispiel. Die
91
- Stelle für Projektfestlegungen ist der Abschnitt *„Projektspezifische Ergänzungen“* am
92
- Ende jedes Dokuments und die zugehörige Zeile in `OVERLAY.md`.
80
+ Was nicht überall passt, kommt nicht hinein, auch nicht als Beispiel. Projektfestlegungen
81
+ gehören in den Abschnitt *„Projektspezifische Ergänzungen“* am Ende jedes Dokuments und in die
82
+ zugehörige Zeile in `OVERLAY.md`.
93
83
 
94
84
  Diese Tabelle beschreibt die Ablage unter `overlay-patterns/general/documents/<typ>/`;
95
85
  `install.py` hält ihre erste Spalte gegen die Verzeichnisse und bricht ab, wenn beide
@@ -104,15 +94,15 @@ auseinanderlaufen.
104
94
  | `security` | Sicherheit als Anforderung, minimale Rechte, gestaffelte Abwehr, sicher scheitern, sichere Voreinstellungen, Geheimnisse, Pflege der Abhängigkeiten | Verfahren, Bibliotheken, Schutzkonfiguration (K3); die Prüfpunkte aus Checkliste 06 und 07 |
105
95
  | `branching-strategy` | Standard-Branch baubar, kurzlebige Branches, Integration über Merge Request, schlüssige Commits, gemeinsame Historie nicht umschreiben | ein Branching-Modell, Namensschema, Commit-Konvention (`OVERLAY.md` Abschnitt 10) |
106
96
 
107
- **Nicht mitgeliefert** werden `architecture`, `roadmap`, `deployment`, `roles` und
108
- `glossary` – sie beschreiben das Projekt – sowie `ai-governance` und `ai-process-model`,
109
- die der Kern selbst trägt.
97
+ Nicht mitgeliefert werden `architecture`, `roadmap`, `deployment`, `roles` und `glossary` – sie
98
+ beschreiben das Projekt – sowie `ai-governance` und `ai-process-model`, die der Kern selbst
99
+ trägt.
110
100
 
111
101
  ### Wie die Dokumente in das Projekt kommen
112
102
 
113
103
  `install.py --overlay general` schreibt sie bei der Erstinstallation nach
114
- `.koolie/project-overlay/documents/<typ>/muster-general.md` und **ersetzt** die drei
115
- Beispieleinträge der Manifestvorlage durch einen Eintrag je Dokument (D-360):
104
+ `.koolie/project-overlay/documents/<typ>/muster-general.md` und ersetzt die drei
105
+ Beispieleinträge der Manifestvorlage durch einen Eintrag je Dokument:
116
106
 
117
107
  | Feld | Wert | Warum |
118
108
  |---|---|---|
@@ -121,30 +111,28 @@ Beispieleinträge der Manifestvorlage durch einen Eintrag je Dokument (D-360):
121
111
  | `load` | `on-demand` | kein weiterer Träger je Client Pack; `summary` und `rule` wählt der Overlay Owner |
122
112
  | `approved_by`, `approved_on` | Ausfüllschlitze | die Freigabe erteilt ein Mensch |
123
113
 
124
- 🔴 **Die Dokumente wirken erst, wenn der Overlay Owner sie freigibt.** Die Liste der
125
- freigegebenen K1-Dokumente in der Laufzeitfassung bleibt ein Ausfüllschlitz, und einen
126
- offenen Wert behandelt der KI-Client als nicht freigegeben. ⚠️ **Preis, benannt:** Bis
127
- dahin haben sie keine Wirkung auf den Client – sie sind ein Anfang für Menschen. Das ist
128
- die Richtung von D-355 an einem Gegenstand, der beschreibt statt sperrt: Ein ungeprüfter
129
- Text wird nicht verbindlich, nur weil er mitgeliefert wurde.
114
+ **Die Dokumente wirken erst, wenn der Overlay Owner sie freigibt.** Die Liste der freigegebenen
115
+ K1-Dokumente in der Laufzeitfassung bleibt ein Ausfüllschlitz, und einen offenen Wert behandelt
116
+ der KI-Client als nicht freigegeben. Bis dahin sind die Dokumente ein Anfang für Menschen; ein
117
+ ungeprüfter Text wird nicht verbindlich, nur weil er mitgeliefert wurde.
130
118
 
131
- ⚠️ **Kein weiterer Platzhalter wird gefüllt**, auch nicht `<PROJECT_RULES_PATH>` oder die
132
- Pfade der projektweiten DoR und DoD in `OVERLAY.md` Abschnitt 11 und 12 – sie zu setzen,
133
- hieße, die Dokumente für das Projekt zu erklären. **Bestandsprojekte** erreicht das Muster
134
- nicht (D-126); sie übernehmen einzelne Dokumente von Hand
135
- (`.koolie/core/docs/ADOPTION_GUIDE.md` Abschnitt 3).
119
+ Kein weiterer Platzhalter wird gefüllt, auch nicht `<PROJECT_RULES_PATH>` oder die Pfade der
120
+ projektweiten DoR und DoD in `OVERLAY.md` Abschnitt 11 und 12 – das hieße, die Dokumente für
121
+ das Projekt zu erklären. Bestandsprojekte erreicht das Muster nicht; sie übernehmen einzelne
122
+ Dokumente von Hand (`.koolie/core/docs/ADOPTION_GUIDE.md` Abschnitt 3).
136
123
 
137
124
  ## Die Grenze zur Aktivierungsreife
138
125
 
139
- 🔴 **Ein Overlay aus diesem Muster ist nicht aktivierungsreif, und das ist gewollt**
140
- (D-57). Es lässt die Pflichtwerte der Abschnitte 1, 5, 6, 13, 14 und 15 offen; ein Overlay,
141
- das die Prüfung `--check-overlay-ready` von selbst bestünde, wäre ein aktivierungsreifer
142
- Zustand, den niemand geprüft hat. **Die Sonde `M355b` hält fest, dass eine frische
143
- Installation mit diesem Muster die Prüfung nicht besteht.**
126
+ Ein Overlay aus diesem Muster ist nicht aktivierungsreif, und das ist gewollt. Es lässt die
127
+ Pflichtwerte der Abschnitte 1, 5, 6, 13, 14 und 15 offen; ein Overlay, das
128
+ `--check-overlay-ready` von selbst bestünde, wäre aktivierungsreif, ohne dass jemand es geprüft
129
+ hat. Die Sonde `M355b` hält fest, dass eine frische Installation mit diesem Muster die Prüfung
130
+ nicht besteht.
144
131
 
145
132
  ## Änderungsverlauf
146
133
 
147
134
  | Version | Datum | Änderung |
148
135
  |---|---|---|
149
- | `0.2.0` | 2026-09-25 | Sechs Musterdokumente allgemeiner Praktiken, im Manifest als `entwurf` registriert; Framework-Release `1.6.0` (`CR-2026-139`, D-359, D-360) |
150
- | `0.1.0` | 2026-09-25 | Erstfassung mit Framework-Release `1.5.0` (`CR-2026-138`, D-355) |
136
+ | `0.2.2` | 2026-10-02 | Sprachlich überarbeitet; Werte und Dokumente unverändert |
137
+ | `0.2.0` | 2026-09-25 | Sechs Musterdokumente allgemeiner Praktiken, im Manifest als `entwurf` registriert; Framework-Release `1.6.0` |
138
+ | `0.1.0` | 2026-09-25 | Erstfassung mit Framework-Release `1.5.0` |