@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
@@ -0,0 +1,177 @@
1
+ # Veroeffentlicht Koolie auf TestPyPI, PyPI und npm - ohne Token, ueber Trusted Publishing.
2
+ #
3
+ # Ausloeser ist nur eine Marke v<Version>. Die Marke muss vom Framework Owner signiert sein
4
+ # (geprueft gegen die Variable KOOLIE_ALLOWED_SIGNERS) und zu .koolie/core/VERSION passen.
5
+ # Ablauf: pruefen und bauen -> TestPyPI mit Installationsprobe -> nach Freigabe in der
6
+ # Umgebung "release" PyPI und npm. Scheitert ein Schritt, laeuft keiner danach.
7
+ # Einrichtung und Ablauf: .koolie/core/governance/RELEASE_PROCESS.md, Abschnitt 4.2, Schritt 9.
8
+ name: Veroeffentlichen
9
+
10
+ on:
11
+ push:
12
+ tags:
13
+ - "v*"
14
+
15
+ permissions:
16
+ contents: read
17
+
18
+ concurrency:
19
+ group: veroeffentlichen
20
+ cancel-in-progress: false
21
+
22
+ jobs:
23
+ pruefen:
24
+ name: Marke pruefen und Pakete bauen
25
+ runs-on: ubuntu-latest
26
+ outputs:
27
+ version: ${{ steps.marke.outputs.version }}
28
+ steps:
29
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
30
+ with:
31
+ fetch-depth: 0
32
+ persist-credentials: false
33
+
34
+ - id: marke
35
+ name: Marke gegen VERSION und Signatur pruefen
36
+ env:
37
+ MARKE: ${{ github.ref_name }}
38
+ ERLAUBTE_SIGNIERER: ${{ vars.KOOLIE_ALLOWED_SIGNERS }}
39
+ run: |
40
+ set -euo pipefail
41
+ # Die annotierte Marke selbst holen; der Checkout legt sonst nur den Commit ab.
42
+ git fetch --force origin "refs/tags/${MARKE}:refs/tags/${MARKE}"
43
+ version="$(tr -d '\r\n' < .koolie/core/VERSION)"
44
+ if [ "${MARKE}" != "v${version}" ]; then
45
+ echo "::error::Marke ${MARKE} passt nicht zu VERSION ${version}"; exit 1
46
+ fi
47
+ if [ -z "${ERLAUBTE_SIGNIERER}" ]; then
48
+ echo "::error::Variable KOOLIE_ALLOWED_SIGNERS fehlt - ohne sie ist die Signatur nicht pruefbar"; exit 1
49
+ fi
50
+ printf '%s\n' "${ERLAUBTE_SIGNIERER}" > "${RUNNER_TEMP}/allowed_signers"
51
+ git config gpg.ssh.allowedSignersFile "${RUNNER_TEMP}/allowed_signers"
52
+ git tag -v "${MARKE}"
53
+ echo "version=${version}" >> "${GITHUB_OUTPUT}"
54
+
55
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
56
+ with:
57
+ python-version: "3.12"
58
+
59
+ - name: Archiv aus der Marke und Pakete bauen
60
+ env:
61
+ MARKE: ${{ github.ref_name }}
62
+ VERSION: ${{ steps.marke.outputs.version }}
63
+ run: |
64
+ set -euo pipefail
65
+ git -c core.eol=lf -c core.autocrlf=input -c tar.umask=022 archive \
66
+ --format=tar.gz --prefix="koolie-${VERSION}/" -o "koolie-${VERSION}.tar.gz" "${MARKE}"
67
+ python paketquellen/bauen.py --archiv "koolie-${VERSION}.tar.gz" --aus pakete
68
+ mkdir -p dist/pypi dist/npm
69
+ cp "pakete/koolie-${VERSION}-py3-none-any.whl" dist/pypi/
70
+ cp "pakete/koolie-${VERSION}.tgz" dist/npm/
71
+ cp pakete/SHA256SUMS dist/
72
+ cat dist/SHA256SUMS
73
+
74
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
75
+ with:
76
+ name: pakete
77
+ path: dist/
78
+ if-no-files-found: error
79
+
80
+ testpypi:
81
+ name: TestPyPI und Installationsprobe
82
+ needs: pruefen
83
+ runs-on: ubuntu-latest
84
+ environment:
85
+ name: testpypi
86
+ url: https://test.pypi.org/project/koolie/${{ needs.pruefen.outputs.version }}/
87
+ permissions:
88
+ id-token: write
89
+ steps:
90
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
91
+ with:
92
+ name: pakete
93
+ path: dist/
94
+
95
+ - uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
96
+ with:
97
+ repository-url: https://test.pypi.org/legacy/
98
+ packages-dir: dist/pypi/
99
+ skip-existing: true
100
+
101
+ - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
102
+
103
+ - name: Aus TestPyPI in ein Wegwerfprojekt installieren
104
+ env:
105
+ VERSION: ${{ needs.pruefen.outputs.version }}
106
+ KOOLIE_NO_BANNER: "1"
107
+ run: |
108
+ set -euo pipefail
109
+ for i in $(seq 1 40); do
110
+ curl -fsS https://test.pypi.org/simple/koolie/ | grep -q "koolie-${VERSION}-py3" && break
111
+ sleep 15
112
+ done
113
+ projekt="${RUNNER_TEMP}/probe"
114
+ mkdir -p "${projekt}" && git -C "${projekt}" init -q
115
+ uvx --no-cache --index-url https://test.pypi.org/simple/ "koolie==${VERSION}" \
116
+ --target "${projekt}" --client claude-code | tee "${RUNNER_TEMP}/probe.txt"
117
+ grep -Eq "Zusammenfassung: [1-9][0-9]* angelegt" "${RUNNER_TEMP}/probe.txt"
118
+ [ "$(tr -d '\r\n' < "${projekt}/.koolie/core/VERSION")" = "${VERSION}" ]
119
+ echo "Probe bestanden: koolie ${VERSION} aus TestPyPI installiert"
120
+
121
+ veroeffentlichen:
122
+ name: PyPI und npm
123
+ needs: [pruefen, testpypi]
124
+ runs-on: ubuntu-latest
125
+ environment:
126
+ name: release
127
+ url: https://pypi.org/project/koolie/${{ needs.pruefen.outputs.version }}/
128
+ permissions:
129
+ id-token: write
130
+ steps:
131
+ - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
132
+ with:
133
+ name: pakete
134
+ path: dist/
135
+
136
+ - uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
137
+ with:
138
+ packages-dir: dist/pypi/
139
+ skip-existing: true
140
+
141
+ - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
142
+ with:
143
+ node-version: "24"
144
+ registry-url: https://registry.npmjs.org
145
+
146
+ - name: npm-Paket veroeffentlichen
147
+ env:
148
+ VERSION: ${{ needs.pruefen.outputs.version }}
149
+ run: |
150
+ set -euo pipefail
151
+ # Trusted Publishing braucht npm ab 11.5.1.
152
+ npm install -g npm@11
153
+ if npm view "@renoxar/koolie@${VERSION}" version >/dev/null 2>&1; then
154
+ echo "@renoxar/koolie@${VERSION} liegt schon auf npm - uebersprungen"
155
+ else
156
+ npm publish "dist/npm/koolie-${VERSION}.tgz" --access public
157
+ fi
158
+
159
+ - name: Veroeffentlichte Bytes gegen SHA256SUMS lesen
160
+ env:
161
+ VERSION: ${{ needs.pruefen.outputs.version }}
162
+ run: |
163
+ set -euo pipefail
164
+ soll_whl="$(grep " koolie-${VERSION}-py3-none-any.whl$" dist/SHA256SUMS | cut -d' ' -f1)"
165
+ soll_tgz="$(grep " koolie-${VERSION}.tgz$" dist/SHA256SUMS | cut -d' ' -f1)"
166
+ for i in $(seq 1 40); do
167
+ ist_whl="$(curl -fsS https://pypi.org/pypi/koolie/json \
168
+ | python3 -c "import json,sys;d=json.load(sys.stdin);print(next((u['digests']['sha256'] for u in d['releases'].get('${VERSION}',[]) if u['filename'].endswith('.whl')),''))")"
169
+ [ -n "${ist_whl}" ] && break
170
+ sleep 15
171
+ done
172
+ [ "${ist_whl}" = "${soll_whl}" ] || { echo "::error::PyPI: SHA-256 ${ist_whl} statt ${soll_whl}"; exit 1; }
173
+ ist_npm="$(npm view "@renoxar/koolie@${VERSION}" dist.integrity)"
174
+ soll_npm="sha512-$(openssl dgst -sha512 -binary "dist/npm/koolie-${VERSION}.tgz" | base64 -w0)"
175
+ [ "${ist_npm}" = "${soll_npm}" ] || { echo "::error::npm: ${ist_npm} statt ${soll_npm}"; exit 1; }
176
+ sha256sum "dist/npm/koolie-${VERSION}.tgz" | grep -q "^${soll_tgz} "
177
+ echo "PyPI und npm tragen die Bytes aus SHA256SUMS"
@@ -1,18 +1,13 @@
1
1
  # Kennzeichen des Quellrepositoriums
2
2
 
3
- Diese Datei kennzeichnet das **Framework-Repositorium selbst** – im Unterschied zu einem
4
- Projekt, das das Framework übernommen hat. Sie trägt keinen Inhalt, der gelesen werden
5
- muss; ihr **Vorhandensein** ist die Aussage (D-351).
3
+ Diese Datei kennzeichnet das Repositorium von Koolie selbst – im Unterschied zu einem
4
+ Projekt, das Koolie übernommen hat. Ihr Inhalt ist nebensächlich; dass sie da ist, ist
5
+ die Aussage.
6
6
 
7
- Der Validator unterscheidet an ihr, wo er läuft. Im Quellrepositorium prüfen die
8
- Prüfungen 75 und 81 alle versionierten Dateien und Prüfung 79 die Lizenz an beiden
9
- Stellen; in einem übernehmenden Projekt beschränken sie sich auf das Ausgelieferte, und
10
- Prüfung 78 enthält sich.
7
+ Der Validator erkennt an ihr, wo er läuft. Im Quellrepositorium prüft er alle
8
+ versionierten Dateien und die Lizenz an beiden Stellen; in einem Projekt nur das, was
9
+ ausgeliefert wird.
11
10
 
12
- **Sie wandert nicht in ein Projekt.** Sie liegt neben dem Kern, nicht in ihm: Das Heben
13
- kopiert nur `.koolie/core/`, und `install.py` legt sie nicht an. ⚠️ **Wer ganz `.koolie/`
14
- kopiert, nimmt sie trotzdem mit** – aus einem Klon ebenso wie aus dem Release-Archiv,
15
- denn sie ist versioniert. `install.py` meldet sie dann; in einem Projekt gehört sie
16
- entfernt (D-354). Bis `1.4.0` war dieses
17
- Kennzeichen die Übergabe `UEBERGABE.md`; seit `1.4.1` ist die Übergabe ein lokales
18
- Arbeitsdokument und nicht mehr versioniert (D-350).
11
+ **In ein Projekt gehört sie nicht.** `install.py` kopiert nur `.koolie/core/` und legt
12
+ diese Datei nicht an. Wer von Hand ganz `.koolie/` kopiert, nimmt sie mit – dann meldet
13
+ `install.py` sie, und sie wird im Projekt gelöscht.
@@ -2,6 +2,65 @@
2
2
 
3
3
  Format: Semantic Versioning; je Release Änderungen, Migrationshinweise für Overlays und bekannte Einschränkungen. Prozess: `.koolie/core/governance/RELEASE_PROCESS.md`.
4
4
 
5
+ ## [2.0.0] - 2026-10-02
6
+
7
+ **Ein sauberer öffentlicher Auftritt, das Präfix `koolie-` und die Veröffentlichung ohne Token**
8
+ (`CR-2026-173`, **D-539** bis **D-541**, Prüfung 113 neu, Prüfung 112 erweitert; `K-210` geklärt, `K-213` bis
9
+ `K-215` neu). Drei Stichprobenläufe `claude-code`, 1,49 USD nach Listenpreis. Kriterium 2 von D-11 bleibt 0.
10
+
11
+ **Bruch**
12
+
13
+ - **Die mitgelieferten Skills heißen `koolie-<name>`** (D-539): `/fw-plan` wird `/koolie-plan`, `role-re-ticket`
14
+ wird `koolie-ticket`, das Agentenprofil `fw-reviewer` wird `koolie-reviewer`. `koolie-*` gehört dem Framework,
15
+ `prj-*` dem Projekt; der Validator verlangt eindeutige Namen über alle Packs.
16
+
17
+ **Neu**
18
+
19
+ - **`install.py --update` migriert selbst** (D-539): Es benennt alte Skillordner und das Agentenprofil um und
20
+ ersetzt die alten Namen in der Berechtigungsdatei einmalig, mit Meldung; `--dry-run` und `--check` zeigen es
21
+ vorher. Sondenteil 19.
22
+ - **Keine Kennungen in der Produktdokumentation** (D-540): Prüfung 113 meldet `CR-`, `D-` und `K-`-Kennungen
23
+ außerhalb der Nachweisschicht. Ausgenommen sind Ergebnis- und Belegspalten, die Belegspalte der
24
+ Fähigkeitsmatrix, Versionsverläufe und drei Kapitel des Hauptdokuments (Grenzen, Anhänge, Abschluss).
25
+ Sondenteil 20. Die Schreibregeln stehen in `docs/DOCUMENTATION_STANDARD.md` Abschnitt 3.
26
+ - **Die Produktdokumentation ist neu gefasst**: Übernahmeleitfaden, Quickstart, `clients/README.md`, Regeln und
27
+ Prozesse, die fünf `CLIENT_PACK.md` und das Hauptdokument – ohne Entscheidungsgeschichte, kürzer. Anweisungen
28
+ in Skills und Laufzeitregeln sind unverändert; in `03-security.md` und `05-working-model.md` fielen nur
29
+ Versionsangaben und Fettdruck, die Standmarke von `koolie-refactor` ist bestätigt.
30
+ - **Trusted Publishing für PyPI und npm** (D-541, `K-210`): Der Workflow `.github/workflows/publish.yml` am
31
+ GitHub-Spiegel läuft nur an einer Marke `v*`, prüft Signatur und `VERSION`, lädt auf TestPyPI mit
32
+ Installationsprobe und erst nach Freigabe des Owners auf PyPI (Attestierung) und npm (Provenienz). Prüfung 112
33
+ Gegenstand d, Sonden 112k bis 112n. Einrichtung in `RELEASE_PROCESS.md` Abschnitt 4.2.
34
+ - Drei Ideen des Owners sind ohne Ziel-Release vorgemerkt (`K-213` bis `K-215`).
35
+
36
+ **Gemessen**
37
+
38
+ - Drei Stichprobenläufe `claude-code` 2.1.287: Skill per Slash, modellseitig und in einem gehobenen Projekt, alle
39
+ tragen, 0 Abweisungen (`tests/protocols/2026-10-02-oeffentlicher-auftritt-2.0.0.md`).
40
+ - Der Workflow lokal: `actionlint` 1.7.12 ohne Befund, Bau und Installationsprobe aus dem Wheel, Signaturprüfung an
41
+ `v1.25.0` mit Gegenprobe.
42
+
43
+ **Behoben**
44
+
45
+ - Das Hauptdokument nannte vier Client Packs und zwölf Referenz-Skills, im Verzeichnisbaum fehlten `cursor`, `kiro`
46
+ und vier Kernskripte, und es beschrieb die Overlay-Sperre noch als `deny`.
47
+ - Das Pack `software-development` nannte den Schritt `install.py --update` nicht; die Overlay-Vorlage sagte in
48
+ Abschnitt 6, keine Prüfung vergleiche die Konfigurationslisten (Prüfung 89 tut es).
49
+ - `openai-codex` Abschnitt 7.1 nannte unerhoben, was die Belegzelle B6 belegt.
50
+
51
+ **Migrationshinweis für Overlays**
52
+
53
+ - `install.py --update` (oder `koolie --target <projekt> --update`) hebt die Skillnamen selbst; vorher zeigt
54
+ `--dry-run`, was umbenannt wird.
55
+ - Von Hand: Nennt das Overlay, eine eigene Regel (`2N-overlay-*`), eine README oder eine Merge-Request-Vorlage
56
+ Skillnamen, auf `koolie-` umstellen. Ein projekteigener Skill mit Präfix `fw-` oder `koolie-` wird `prj-`.
57
+ - Slash-Befehle in Notizen und Gewohnheiten: `/koolie-<name>`.
58
+
59
+ **Bekannte Einschränkungen**
60
+
61
+ - Der Workflow läuft erstmals an `v2.0.0`; bis zum ersten erfolgreichen Lauf bleiben die Tokens als Rückfall.
62
+ - `K-211` und `K-212` bleiben offen.
63
+
5
64
  ## [1.25.0] - 2026-10-01
6
65
 
7
66
  **Ein neuer Auftritt, npm unter dem Scope und die Suche nach dem Aeltesten - und der Name, den npm fuer cookie hielt**
@@ -7,7 +7,6 @@
7
7
  | Status | `pilot` |
8
8
  | Owner (Rolle) | `<FRAMEWORK_OWNER>` |
9
9
  | Gilt für | den gesamten Inhalt dieses Frameworks – Kern, Client Packs, Regeltexte, Werkzeuge, Vorlagen und Dokumentation |
10
- | Entstehung | `CR-2026-126`, **D-316** bis **D-317** (2026-09-23); Rechteinhaber benannt mit `CR-2026-128`, **D-323**; SPDX-Kennung mit `CR-2026-165`, **D-507** |
11
10
 
12
11
  ## 1. Lizenz (normativ)
13
12
 
@@ -17,13 +16,13 @@ Open-Source-Definition** – jede und jeder darf es nutzen, untersuchen, ändern
17
16
  weitergeben.
18
17
 
19
18
  SPDX-Kennung: `GPL-3.0-only` – es gilt Version 3, nicht „oder jede spätere Version“
20
- (D-507). Das Banner des Installationsdialogs liest diese Zeile und die folgende und nennt
19
+ . Das Banner des Installationsdialogs liest diese Zeile und die folgende und nennt
21
20
  die Kurzform `GPL-3.0`.
22
21
 
23
22
  Copyright © 2026 René Hildebrand
24
23
 
25
24
  > 🔴 **Diese eine Zeile nennt eine Person, und sie ist die einzige im ganzen Kern, die
26
- > das tut** (D-323, `CR-2026-128` E7). Überall sonst gilt die Projektneutralität: Rollen
25
+ > das tut**. Überall sonst gilt die Projektneutralität: Rollen
27
26
  > statt Personen, Platzhalter statt Namen. **Hier gilt sie nicht, und der Grund ist
28
27
  > keine Ausnahme vom Prinzip, sondern seine Grenze.** Die Neutralitätsregel hält
29
28
  > **fremde** Personen aus generischen Bestandteilen – Kunden, Behörden, Kolleginnen und
@@ -35,7 +34,7 @@ Copyright © 2026 René Hildebrand
35
34
  > übernehmende Projekt. ⚠️ **Und der Widerspruch, der ihn nötig machte, ist gemessen:**
36
35
  > Die Historie dieses Repositoriums führt denselben Namen in **122 Commits** und die
37
36
  > Adresse in allen **261** – *er stand dort, wo er niemandem nützt, und fehlte dort, wo
38
- > er rechtlich wirkt* (D-324).
37
+ > er rechtlich wirkt*.
39
38
 
40
39
  > Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General
41
40
  > Public License, Version 3, weitergeben und/oder verändern. Es wird **ohne jede
@@ -80,11 +79,11 @@ nur benutzt, entsteht keine einzige Pflicht.
80
79
  | Mit dem Framework wird ein Produkt entwickelt und verkauft | **keine Pflicht.** Das Produkt ist keine Ableitung: Es enthält keine Zeile dieses Frameworks, und die Ausgabe eines Werkzeugs ist keine Ableitung des Werkzeugs (Abschnitt 2) |
81
80
  | Das Projektrepositorium wird veröffentlicht, mit `<CORE_DIR>/` darin | `<CORE_DIR>/` steht unter GPL-3.0 – **es steht ohnehin schon so da.** Der eigene Code daneben bleibt frei: §5 GPL-3.0 nennt das ein *aggregate*, und ein gemeinsames Repositorium ist genau das |
82
81
  | Code dieses Frameworks wird **in** ein Produkt hineinkopiert | Dieser Teil wird GPL-3.0. **Das ist gewollt** und der einzige Fall, in dem die Lizenz greift |
83
- | Das Framework selbst wird weitergegeben, entgeltlich oder unentgeltlich | Es muss unter GPL-3.0 weitergegeben werden, mit Quelltext. **Ein Umbenennen-und-proprietär-Verkaufen ist damit ausgeschlossen** – das war der tragende Grund der Lizenzwahl (D-316) |
82
+ | Das Framework selbst wird weitergegeben, entgeltlich oder unentgeltlich | Es muss unter GPL-3.0 weitergegeben werden, mit Quelltext. **Ein Umbenennen-und-proprietär-Verkaufen ist damit ausgeschlossen** – das war der tragende Grund der Lizenzwahl |
84
83
 
85
84
  ## 4. Die verworfenen Alternativen (Erläuterung)
86
85
 
87
- Beides ist in `CR-2026-126` Abschnitt 4 einzeln vorgelegt und in D-316 entschieden:
86
+ Zwei Alternativen lagen nahe:
88
87
 
89
88
  - **Apache-2.0** – verworfen: Sie erlaubt ausdrücklich, das Werk umzubenennen, zu schließen
90
89
  und zu verkaufen. Ihr einziger Riegel ist §6, und der schützt den **Namen**, nicht die
@@ -16,7 +16,7 @@
16
16
  | Datenschutzmodell (FW-CORE-02) | `.koolie/core/framework/core/02-privacy.md`, Regelablage `10-*` | `<FRAMEWORK_OWNER>` mit `<DATA_PROTECTION_CONTACT>` | – |
17
17
  | Sicherheitsmodell (FW-CORE-03), Berechtigungen, Hooks | `.koolie/core/framework/core/03-security.md`, `.koolie/core/framework/runtime/permissions.json`, `.koolie/core/framework/runtime/hooks.json`, `.koolie/core/clientmap.py`, `.koolie/core/tests/scripts/hook-*` | `<FRAMEWORK_OWNER>` mit `<SECURITY_CONTACT>` | – |
18
18
  | Role Pack Softwareentwicklung | `.koolie/core/framework/role-packs/software-development/`, Regelablage `30-role-software-development.md` | `<FRAMEWORK_OWNER>` (bis Benennung Modul-Owner: `<TBD>`) | – |
19
- | Role Pack Requirements Engineering (RP-RE), Skill `role-re-ticket` | `.koolie/core/framework/role-packs/requirements-engineering/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
19
+ | Role Pack Requirements Engineering (RP-RE), Skill `koolie-ticket` | `.koolie/core/framework/role-packs/requirements-engineering/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
20
20
  | Technology Packs | `.koolie/core/framework/tech-packs/` | je Pack `<TBD: Modul-Owner>` | – |
21
21
  | Client Packs (Abbildung auf KI-Clients) | `.koolie/core/clients/` | `<FRAMEWORK_OWNER>` | `<SECURITY_CONTACT>` für Kernzusagen ohne technische Durchsetzung |
22
22
  | Client Pack `devin-desktop` (CP-DD) | `.koolie/core/clients/devin-desktop/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
@@ -24,7 +24,7 @@
24
24
  | Client Pack `openai-codex` (CP-OC) | `.koolie/core/clients/openai-codex/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
25
25
  | Client Pack `kiro` (CP-KI) | `.koolie/core/clients/kiro/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
26
26
  | Client Pack `cursor` (CP-CU) | `.koolie/core/clients/cursor/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
27
- | Framework-Skills FW-SK-001…012 | Skill-Ablage `fw-*` | `<FRAMEWORK_OWNER>` (bis Benennung Modul-Owner je Gruppe) | – |
27
+ | Framework-Skills FW-SK-001…012 | Skill-Ablage `koolie-*` | `<FRAMEWORK_OWNER>` (bis Benennung Modul-Owner je Gruppe) | – |
28
28
  | Prompt-Bibliothek | `.koolie/core/prompts/` | `<FRAMEWORK_OWNER>` | – |
29
29
  | Checklisten und Entscheidungsbäume | `.koolie/core/checklists/`, `.koolie/core/decision-trees/` | `<FRAMEWORK_OWNER>` | – |
30
30
  | Onboarding | `.koolie/core/onboarding/` | `<FRAMEWORK_OWNER>` mit Mentorinnen und Mentoren | – |
@@ -1 +1 @@
1
- 1.25.0
1
+ 2.0.0
@@ -4,15 +4,15 @@
4
4
 
5
5
  | | |
6
6
  |---|---|
7
- | Dokumentversion | 1.25.0 (entspricht Framework-Release 1.25.0) |
7
+ | Dokumentversion | 2.0.0 (entspricht Framework-Release 2.0.0) |
8
8
  | Stand | 2026-09-28 |
9
- | Status | **Kein Modulträger steht auf `entwurf`.** Gezählt am 2026-09-22 über den ganzen Kern: 81 Träger führen eine Steckbriefzeile, davon **77 auf `pilot`** und vier als Ausfüllschlitz einer Vorlage – Kriterium 3 der 1.0.0-Definition ist seit Release 0.53.0 erfüllt und wird bei jedem Validatorlauf nachgerechnet (Prüfung 46). Die technische Validierung gegen reale Installationen ist als Roadmap-Arbeitspaket AP2 **gefahren und mit Release 0.86.0 zu Ende geführt**; die Protokolle liegen unter `.koolie/core/tests/protocols/`. Was zwischen diesem Stand und 1.0.0 liegt, steht im Releaseplan der Roadmap (Kap. 30) |
9
+ | Status | Kein Modulträger steht auf `entwurf`; Prüfung 46 rechnet das bei jedem Validatorlauf nach. Die technische Validierung gegen reale Installationen (Roadmap-Arbeitspaket AP2) ist abgeschlossen; die Protokolle liegen unter `.koolie/core/tests/protocols/`. Was als Nächstes kommt, steht in der Roadmap (Kap. 30) |
10
10
  | Vertraulichkeit | projektneutral – enthält keine organisations-, kunden-, personen- oder infrastrukturspezifischen Inhalte; Beispiele sind synthetisch |
11
- | Zielprodukt | Kein einzelnes. Der Kern ist werkzeugneutral; die Bindung an einen KI-Client leistet ein **Client Pack** (`.koolie/core/clients/`). Ausgeliefert werden fünf: `devin-desktop`, `claude-code`, `openai-codex`, `kiro` und `cursor` (Reifegrad `pilot`). **Welches Produkt ein Pack abbildet, gegen welche verbindliche Zielversion und mit welchem Stand der Produktbeobachtung, steht im Pack selbst** (Kap. 7a, 15.1) – nicht hier: Diese Angaben ändern sich mit dem Produkt, und der Kern soll sich nicht mit ihm ändern. |
12
- | **Reproduzierbarkeit** | Das Dokument wird aus dem Repository assembliert und baut aus einem frischen Auscheckstand. Laufzeitdateien stammen aus einer Referenzinstallation, die beim Bau entsteht; jede trägt die Angabe, aus welchem Client Pack sie kommt. |
11
+ | Zielprodukt | Kein einzelnes. Der Kern ist werkzeugneutral; die Bindung an einen KI-Client leistet ein **Client Pack** (`.koolie/core/clients/`). Ausgeliefert werden fünf: `devin-desktop`, `claude-code`, `openai-codex`, `kiro` und `cursor` (Reifegrad `pilot`). Welches Produkt ein Pack abbildet, gegen welche Zielversion und mit welchem Stand der Produktbeobachtung, steht im Pack selbst (Kap. 7a, 15.1), weil sich diese Angaben mit dem Produkt ändern. |
12
+ | Reproduzierbarkeit | Das Dokument wird aus dem Repository assembliert und baut aus einem frischen Auscheckstand. Laufzeitdateien stammen aus einer Referenzinstallation, die beim Bau entsteht; jede trägt die Angabe, aus welchem Client Pack sie kommt. |
13
13
  | Bestandteile der Lieferung | dieses Hauptdokument (Markdown und Word) und das Referenz-Repository – das Repository ist die maßgebliche, versionierte Quelle aller eingebetteten Artefakte |
14
14
  | Autorenschaft | erstellt als beauftragte Ausarbeitung; Verantwortungsübernahme durch `<FRAMEWORK_OWNER>` bei Übernahme |
15
15
 
16
- **Warum Koolie?** Ein **Koolie** ist ein australischer Hütehund, und das Bild ist die Aufgabenbeschreibung dieses Frameworks: Ein Hütehund treibt die Herde nicht, und er ersetzt den Schäfer nicht – er hält sie beisammen und in Richtung. Er arbeitet selbständig, aber auf Anweisung, und er hält Grenzen, ohne zu beißen. Genau das tut dieses Framework mit einem KI-Client: Es macht ihn nicht besser, und es entscheidet nichts an seiner Stelle – es hält ihn in der Spur, an den Grenzen und an den Stellen, an denen ein Mensch entscheidet. Ein Koolie ist außerdem eine **Gebrauchsrasse, kein Schauhund**, und das ist hier ein Anspruch: Was in diesem Dokument steht, muss im Alltag eines Projekts tragen, nicht in einer Vorführung gut aussehen. Die Namensentscheidung mit ihrer Begründung und den verworfenen Alternativen steht als D-125 im Decision Log (Kap. 29.2).
16
+ **Warum Koolie?** Ein Koolie ist ein australischer Hütehund. Er treibt die Herde nicht und ersetzt den Schäfer nicht; er hält sie beisammen und in Richtung, selbständig, aber auf Anweisung. Das tut dieses Framework mit einem KI-Client: Es entscheidet nichts an seiner Stelle, sondern hält ihn in der Spur, an den Grenzen und an den Stellen, an denen ein Mensch entscheidet. Und ein Koolie ist eine Gebrauchsrasse, kein Schauhund: Was hier steht, muss im Alltag eines Projekts tragen.
17
17
 
18
- **Lesehinweise:** Verbindlichkeit wird durchgängig über **MUSS / SOLL / KANN / DARF NICHT** ausgedrückt; normative Abschnitte sind als solche gekennzeichnet, Erläuterungen tragen den Zusatz „(Erläuterung)", Beispiele sind stets „**Beispiel (synthetisch)**". Jede Aussage über Produktfunktionen eines KI-Clients trägt einen Belegstatus: `[DOK]` offiziell dokumentiert (Quellen in Anhang 31.4), `[EMPF]` technisch begründete, noch nicht in einer Installation ausgeführte Empfehlung, `[KONZ]` konzeptioneller Vorschlag ohne Produktbezug; offene Prüfpunkte tragen den Belegstand `BELEG OFFEN` mit Grund und Datum. Variable Inhalte erscheinen ausschließlich als Platzhalter in spitzen Klammern (Register in Anhang 31.3); offene Projektentscheidungen als `<TBD: …>`. Verweise der Form `.koolie/core/framework/core/…` bezeichnen Dateien des Referenz-Repositorys. Bestandteile der Laufzeitschicht werden im Fließtext mit **Begriffen** benannt (Wurzel-Anweisungsdatei, Regelablage, Berechtigungsdatei …); ihre Pfade je Client Pack führt Anhang 31.2.
18
+ **Lesehinweise:** Verbindlichkeit wird durchgängig über MUSS / SOLL / KANN / DARF NICHT ausgedrückt; normative Abschnitte sind als solche gekennzeichnet, Erläuterungen tragen den Zusatz „(Erläuterung)", Beispiele sind stets „Beispiel (synthetisch)". Jede Aussage über Produktfunktionen eines KI-Clients trägt einen Belegstatus: `[DOK]` offiziell dokumentiert (Quellen in Anhang 31.4), `[EMPF]` technisch begründete, noch nicht in einer Installation ausgeführte Empfehlung, `[KONZ]` konzeptioneller Vorschlag ohne Produktbezug; offene Prüfpunkte tragen den Belegstand `BELEG OFFEN` mit Grund und Datum. Variable Inhalte erscheinen ausschließlich als Platzhalter in spitzen Klammern (Register in Anhang 31.3); offene Projektentscheidungen als `<TBD: …>`. Verweise der Form `.koolie/core/framework/core/…` bezeichnen Dateien des Referenz-Repositorys. Bestandteile der Laufzeitschicht werden im Fließtext mit **Begriffen** benannt (Wurzel-Anweisungsdatei, Regelablage, Berechtigungsdatei …); ihre Pfade je Client Pack führt Anhang 31.2.
@@ -1,24 +1,24 @@
1
1
  # 1 Executive Summary
2
2
 
3
- Dieses Dokument liefert ein projektneutrales, wiederverwendbares und erweiterbares Framework für den professionellen Einsatz von **KI-Codierassistenten** in Softwareentwicklungsteams – als methodisches Vorgehensmodell **und** als sofort nutzbare technische Referenzimplementierung in Form eines Repositorys. Erster Einsatzzweck ist die strukturierte Einführung des Werkzeugs und das Onboarding neuer Entwicklerinnen und Entwickler in einem bestehenden Projekt; die Übertragung auf weitere Teams und Projekte ist konstruktiv vorgesehen und beschränkt sich auf den Austausch einer einzigen Ebene, des Project Overlays.
3
+ Dieses Dokument beschreibt ein projektneutrales, wiederverwendbares und erweiterbares Framework für den Einsatz von KI-Codierassistenten in Softwareentwicklungsteams: ein Vorgehensmodell und eine sofort nutzbare Referenzimplementierung als Repository. Erster Einsatzzweck ist die Einführung des Werkzeugs und das Onboarding neuer Entwicklerinnen und Entwickler in einem bestehenden Projekt. Für ein weiteres Team oder Projekt wird nur eine Ebene getauscht, das Project Overlay.
4
4
 
5
- **Der Kern ist werkzeugneutral, und das ist nachprüfbar gemeint.** Welcher Assistent zum Einsatz kommt, legt ein **Client Pack** fest (Kap. 7a) – eine Abbildungsschicht, die keine Regel einführt und keine lockert. Ausgeliefert werden vier: `claude-code`, `devin-desktop`, `openai-codex` und – mit Reifegrad `pilot` – `kiro`; die Regelmenge ist bei allen dieselbe. Jedes Pack führt eine **Fähigkeitsmatrix**: jede technische Zusage des Frameworks, eingestuft als `[TECHNISCH]` (die Engine erzwingt sie), `[TEXTUELL]` (nur Anweisung im Kontext) oder `[NICHT ABBILDBAR]`. Damit wird sichtbar, was ein Werkzeug tatsächlich durchsetzt – denn ein Framework, dessen Schutzzusagen bei einem Client von der Engine erzwungen werden und bei einem anderen nur als Prosa im Prompt stehen, erzeugt sonst falsche Sicherheit. Die Matrizen sind unterschiedlich lang, weil eine Zusage, für die ein Client keinen Mechanismus hat, bei ihm keine Zeile bekommt; ihre Gesamtzahlen lassen sich deshalb nicht vergleichen (Kap. 7a.3).
5
+ **Der Kern ist werkzeugneutral.** Welcher Assistent zum Einsatz kommt, legt ein **Client Pack** fest (Kap. 7a), eine Abbildungsschicht, die keine Regel einführt und keine lockert. Ausgeliefert werden fünf: `claude-code`, `devin-desktop`, `openai-codex`, `kiro` und `cursor`, alle mit Reifegrad `pilot`; die Regelmenge ist bei allen dieselbe. Jedes Pack führt eine Fähigkeitsmatrix, die jede technische Zusage des Frameworks einstuft: `[TECHNISCH]` (die Engine erzwingt sie), `[TEXTUELL]` (nur Anweisung im Kontext) oder `[NICHT ABBILDBAR]`. So ist sichtbar, was ein Werkzeug tatsächlich durchsetzt und wo eine Schutzzusage nur als Text im Prompt steht. Die Matrizen sind unterschiedlich lang, weil eine Zusage ohne Mechanismus beim Client keine Zeile bekommt; ihre Gesamtzahlen lassen sich deshalb nicht vergleichen (Kap. 7a.3).
6
6
 
7
7
  Das Framework beantwortet die zehn Leitfragen des Auftrags so:
8
8
 
9
9
  - **Sicherer und kontrollierter Einsatz:** Vier Kontrollschichten wirken zusammen – organisationsweite Einstellungen, versionierte Repository-Konfiguration (Berechtigungen mit `deny`-Vorrang, Hooks, Regeln), Sitzungsdisziplin (rückfragender Standardmodus, Einzelbestätigungen) und menschliche Prüfung entlang bestehender Quality Gates.
10
- - **Was der Assistent darf**, regeln sechs Betriebsmodi (M1 Analyse bis M5 Dokumentation, dazu M6 für das Eintragen von Entscheidungen des Menschen in das Overlay – nur mit Mandat) in Verbindung mit einer dreistufigen Risikoklassifizierung (niedrig/mittel/hoch, Maximumprinzip über dreizehn Faktoren); **was er nie darf**, fixiert eine zwölfteilige Delegationsverbotsliste (Freigaben, Merges, Releases, Architekturentscheidungen, Secrets, Echtdaten und weitere).
11
- - **Kontext** wird über vier Klassen (K0–K3) aufgabenbezogen bereitgestellt – mit technischer Absicherung gegen die häufigsten Fehler.
10
+ - **Was der Assistent darf**, regeln sechs Betriebsmodi (M1 Analyse bis M5 Dokumentation, dazu M6 für das Eintragen von Entscheidungen des Menschen in das Overlay, nur mit Mandat) zusammen mit einer dreistufigen Risikoklassifizierung (niedrig/mittel/hoch, Maximumprinzip über dreizehn Faktoren). **Was er nie darf**, legt eine Delegationsverbotsliste mit zwölf Punkten fest (Freigaben, Merges, Releases, Architekturentscheidungen, Secrets, Echtdaten und weitere).
11
+ - **Kontext** wird über vier Klassen (K0–K3) aufgabenbezogen bereitgestellt, mit technischer Absicherung gegen die häufigsten Fehler.
12
12
  - **Regeln, Skills und Prompts** sind über eine Vier-plus-zwei-Ebenen-Architektur strukturiert (Framework Core, Role Packs, Technology Packs, Project Overlay, dazu Organisationsvorgaben und flüchtiger Aufgabenkontext) und über eine achtstufige, widerspruchsgeprüfte Prioritätshierarchie geordnet.
13
13
  - **Onboarding** erfolgt über ein Programm mit Übungen, Negativübungen (Ködern) und dokumentierter Freigabe.
14
14
  - **Prüfung und Freigabe** von KI-Ergebnissen laufen ausschließlich über die bestehenden Reviews und Gates, ergänzt um KI-spezifische Prüfpunkte.
15
15
  - **Versionierung, Pflege und Übertragung** regelt ein Governance-Betriebsmodell mit Release-Prozess, Testkatalog und Übernahmeleitfaden.
16
16
  - **Nutzen und Risiken** misst ein Pilotkonzept mit ausdrücklich projektspezifisch festzulegenden Zielwerten.
17
17
 
18
- Die Referenzimplementierung liefert die zentrale Agentenanweisung, eine vollständige Project-Overlay-Vorlage mit Manifest-Mechanismus für dreizehn projektspezifische Dokumenttypen, zwölf Referenz-Skills mit Testfällen, ein Role Pack mit einem dreizehnten Skill, zwölf Prompt-Vorlagen, elf Checklisten, sechs validierte Entscheidungsbäume, das Onboarding-Paket, einen Testkatalog mit Prüf-Skripten sowie RACI-, Prozess- und Roadmap-Vorlagen. Die **Laufzeitschicht** – das, was der Assistent tatsächlich liest – wird dabei nicht von Hand gepflegt, sondern bei der Installation aus dem Kern in die Form des gewählten Client Packs erzeugt. Installiert wird über einen Starter für Windows oder macOS, der Projektverzeichnis, Client Pack und auf Wunsch ein Overlay-Muster abfragt und den Kern in das Projekt kopiert (Kap. 15.2, 28).
18
+ Die Referenzimplementierung liefert die zentrale Agentenanweisung, eine Project-Overlay-Vorlage mit Manifest für dreizehn projektspezifische Dokumenttypen, dreizehn Referenz-Skills mit Testfällen, ein Role Pack mit einem weiteren Skill, zwölf Prompt-Vorlagen, elf Checklisten, sechs Entscheidungsbäume, das Onboarding-Paket, einen Testkatalog mit Prüfskripten sowie RACI-, Prozess- und Roadmap-Vorlagen. Die **Laufzeitschicht**, also das, was der Assistent tatsächlich liest, wird nicht von Hand gepflegt, sondern bei der Installation aus dem Kern in der Form des gewählten Client Packs erzeugt. Installiert wird über eine Paketquelle (`uvx koolie`, `npx @renoxar/koolie`) oder einen Starter für Windows oder macOS; beide fragen Projektverzeichnis, Client Pack und auf Wunsch ein Overlay-Muster ab und kopieren den Kern in das Projekt (Kap. 15.2, 28).
19
19
 
20
- **Was das Framework kostet, ist gemessen** (Kap. 28, Abschnitt 7): Eine kleine Aufgabe wird mit dem Framework rund zwei- bis dreimal so teuer, eine größere rund doppelt so teuer – bei Listenpreisen von 2026-09-26 einige Cent je Aufgabe. Die feste Last je Modellaufruf (4.400 bis 15.000 Token je Client Pack) kommt fast immer aus dem Cache; den Unterschied macht die Arbeitsweise – Fundstellen, Skill, Ergebnisbericht. **Und die Schutzschicht wirkt nur für eine Sitzung, die im Verzeichnis der Installation startet**; bei mehreren Repositories gehört je Repository eine Installation dazu (Kap. 28, Abschnitt 4).
20
+ **Kosten** (gemessen, Kap. 28, Abschnitt 7): Eine kleine Aufgabe wird mit dem Framework rund zwei- bis dreimal so teuer, eine größere rund doppelt so teuer, bei Listenpreisen von 2026-09-26 einige Cent je Aufgabe. Die feste Last je Modellaufruf (4.400 bis 15.000 Token je Client Pack) kommt fast immer aus dem Cache; den Unterschied macht die Arbeitsweise mit Fundstellen, Skill und Ergebnisbericht. Die Schutzschicht wirkt nur für eine Sitzung, die im Verzeichnis der Installation startet; bei mehreren Repositories braucht jedes eine eigene Installation (Kap. 28, Abschnitt 4).
21
21
 
22
- **Wesentliche Grenze der Aussagen:** Die fünf Fähigkeitsmatrizen sind unterschiedlich weit belegt. Für `devin-desktop` ist die Validierung an einer realen Installation (Roadmap-AP2) abgeschlossen; offen ist genau eine Zeile, und zwar dauerhaft, weil ihre Frage von außen nicht beobachtbar ist. Für `claude-code` liegt ein Abgleich mit der Herstellerdokumentation einer benannten Clientversion vor, dazu Messungen für einen Teil der Zeilen; die übrigen Wirkungsnachweise stehen aus. Für `openai-codex` stammen alle Belege aus Messungen am Client selbst; einige Zeilen sind noch offen, und eine Beobachtung der Herstellerdokumentation fehlt. Für `kiro` ist die Kommandozeile gemessen, die Zeilen der IDE sind es nicht, und die Hooks laufen nur in der interaktiven Sitzung. Für `cursor` ist die Kommandozeile unter Windows gemessen; die Zeilen der IDE und die Schreibweise der Pfadmuster für macOS und Linux sind es nicht. Welche Zeile wie belegt ist, sagt die Belegspalte der jeweiligen Matrix. Alle produktbezogenen Aussagen tragen Belegstatus; Offenes sagt `BELEG OFFEN` **mit Grund und Datum und ohne Frist** – ein Belegstand sagt, was heute belegt ist, nicht, bis wann es belegt sein muss.
22
+ **Wesentliche Grenze der Aussagen:** Die fünf Fähigkeitsmatrizen sind unterschiedlich weit belegt. Für `devin-desktop` ist die Validierung an einer realen Installation abgeschlossen; offen ist genau eine Zeile, und zwar dauerhaft, weil ihre Frage von außen nicht beobachtbar ist. Für `claude-code` liegt ein Abgleich mit der Herstellerdokumentation einer benannten Clientversion vor, dazu Messungen für einen Teil der Zeilen; die übrigen Wirkungsnachweise stehen aus. Für `openai-codex` stammen alle Belege aus Messungen am Client selbst; einige Zeilen sind noch offen, und eine Beobachtung der Herstellerdokumentation fehlt. Für `kiro` ist die Kommandozeile gemessen, die Zeilen der IDE sind es nicht, und die Hooks laufen nur in der interaktiven Sitzung. Für `cursor` ist die Kommandozeile unter Windows gemessen; die Zeilen der IDE und die Schreibweise der Pfadmuster für macOS und Linux sind es nicht. Welche Zeile wie belegt ist, sagt die Belegspalte der jeweiligen Matrix. Alle produktbezogenen Aussagen tragen Belegstatus; Offenes trägt `BELEG OFFEN` mit Grund und Datum, ohne Frist.
23
23
 
24
- **Empfohlene nächste Schritte für ein aufnehmendes Projekt:** Rollen besetzen und Datenschutz-/Vertragsprüfung beauftragen (AP1), Client Pack wählen und Overlay ausfüllen (AP4), Sicherheits- und Datenschutzfreigabe einholen (AP6) – der Weg steht in Kap. 30 und im Abschlussteil.
24
+ **Nächste Schritte für ein aufnehmendes Projekt:** Rollen besetzen und Datenschutz- und Vertragsprüfung beauftragen (AP1), Client Pack wählen und Overlay ausfüllen (AP4), Sicherheits- und Datenschutzfreigabe einholen (AP6). Der Weg steht in Kap. 30 und im Abschlussteil.
@@ -20,9 +20,9 @@
20
20
  |---|---|---|
21
21
  | N1 | Maximierung des Automatisierungsgrads oder „autonome" Entwicklung | Human Accountability ist Grundprinzip; Autonomie-Modi sind untersagt beziehungsweise ausnahmepflichtig |
22
22
  | N2 | Ersatz bestehender Prozesse, Reviews, Gates oder Rollen | Das Framework ergänzt; es ersetzt nichts (P6) |
23
- | N3 | Rechtliche Bewertung oder Compliance-Freigabe (Datenschutzrecht, Lizenzrecht, KI-Regulierung) | Liegt bei den zuständigen Rollen der Organisation; das Framework liefert operative Anschlusspunkte und benennt Prüfbedarfe (K-06) |
23
+ | N3 | Rechtliche Bewertung oder Compliance-Freigabe (Datenschutzrecht, Lizenzrecht, KI-Regulierung) | Liegt bei den zuständigen Rollen der Organisation; das Framework liefert operative Anschlusspunkte und benennt Prüfbedarfe |
24
24
  | N4 | Bewertung oder Überwachung von Personen anhand von Nutzungs- oder Pilotdaten | Ausdrücklich ausgeschlossen (V7, Metrik-Grundsätze) |
25
25
  | N5 | Produktdokumentation oder Schulung für einen KI-Client als Produkt | Das Framework referenziert die offizielle Dokumentation; es dupliziert sie nicht |
26
26
  | N6 | Vollständige technologie- oder branchenspezifische Regelwerke in der Erstfassung | Technology Packs entstehen projektbezogen; die Struktur dafür ist Teil des Frameworks |
27
- | N7 | Abdeckung anderer Einsatzformen (Cloud-Sitzungen, Läufe ohne beobachtende Person, Fremdagenten) im Kern der Erstfassung | Als Erweiterung vorgesehen, standardmäßig deaktiviert (D-10, D-386, K-04). Ein Kommandozeilen-Client in einer beobachteten Sitzung gehört zum Kern |
27
+ | N7 | Abdeckung anderer Einsatzformen (Cloud-Sitzungen, Läufe ohne beobachtende Person, Fremdagenten) im Kern der Erstfassung | Als Erweiterung vorgesehen, standardmäßig deaktiviert. Ein Kommandozeilen-Client in einer beobachteten Sitzung gehört zum Kern |
28
28
  | N8 | Garantie fehlerfreier KI-Ergebnisse | Unerreichbar; das Framework macht Fehler früh sichtbar und begrenzt ihre Wirkung |
@@ -4,7 +4,7 @@
4
4
 
5
5
  Das Framework gilt für den Einsatz eines **KI-Codierassistenten** in Softwareentwicklungsprojekten mit Git-basiertem Entwicklungsprozess und den im verfügbaren Kontext genannten generischen Werkzeugklassen (Issue Tracking wie `<ISSUE_TRACKER>`, Git-Repository, Merge beziehungsweise Pull Requests, `<CI_CD_PLATFORM>`, statische Codeanalyse, automatisierte Tests, technische Dokumentation, Teamkommunikation und Wissensmanagement). Es umfasst Governance, Datenschutz- und Sicherheitsmodell, Arbeitsmodell, Skills, Prompts, Checklisten, Entscheidungsbäume, Onboarding, Framework-Qualitätssicherung, Pilotierung und Übernahme.
6
6
 
7
- Vorausgesetzt ist die **lokale, beobachtete** Nutzung: Der Assistent läuft in der Entwicklungsumgebung, eine Person verfolgt die Sitzung. Nicht Teil des Kerngeltungsbereichs – strukturell vorbereitet und standardmäßig deaktiviert (D-10, `<TBD: Freigabe Cloud/CLI-Nutzung>`): Cloud-Sitzungen, nicht-interaktive Läufe ohne beobachtende Person (auch die eines Kommandozeilen-Clients), automatisierte Reviews, Fremdagenten über offene Agentenprotokolle sowie Hintergrundläufe. Ausgeschlossen ist damit der Betrieb ohne beobachtende Person, nicht eine Oberfläche: Ein Kommandozeilen-Client in einer interaktiven Sitzung, die eine Person verfolgt, gehört zum Kerngeltungsbereich (D-386). Eine Freigabe dieser Formen erfordert eine Erweiterung des Sicherheitsmodells über den Änderungsprozess.
7
+ Vorausgesetzt ist die **lokale, beobachtete** Nutzung: Der Assistent läuft in der Entwicklungsumgebung, eine Person verfolgt die Sitzung. Nicht Teil des Kerngeltungsbereichs, strukturell vorbereitet und standardmäßig deaktiviert (`<TBD: Freigabe Cloud/CLI-Nutzung>`): Cloud-Sitzungen, nicht-interaktive Läufe ohne beobachtende Person (auch die eines Kommandozeilen-Clients), automatisierte Reviews, Fremdagenten über offene Agentenprotokolle sowie Hintergrundläufe. Ausgeschlossen ist damit der Betrieb ohne beobachtende Person, nicht eine Oberfläche: Ein Kommandozeilen-Client in einer interaktiven Sitzung, die eine Person verfolgt, gehört zum Kerngeltungsbereich. Eine Freigabe dieser Formen erfordert eine Erweiterung des Sicherheitsmodells über den Änderungsprozess.
8
8
 
9
9
  **Welcher** Assistent zum Einsatz kommt, legt das gewählte Client Pack fest (Kap. 7a). Der Geltungsbereich ist davon unabhängig; die Durchsetzungstiefe der Zusagen ist es nicht – sie steht in der Fähigkeitsmatrix des Packs und ist vor Inbetriebnahme zu bewerten.
10
10
 
@@ -14,12 +14,12 @@ Es gilt für alle Personen, die im Geltungsbereich eines aktiven Project Overlay
14
14
 
15
15
  ## 4.3 Organisatorisch und zeitlich
16
16
 
17
- Je Projekt wird der Geltungsbereich durch das Project Overlay konkretisiert (Repositorys, Pfade, Rollen, Freigaben); ohne aktives Overlay ist produktiver Einsatz unzulässig (nur Onboarding-Übungen auf dem synthetischen Übungsrepository). Voraussetzungen auf Organisationsebene – Werkzeugfreigabe, Datenschutz- und Vertragsprüfung, administrativ gesetzte Team-Einstellungen – sind Eingangsbedingungen (Klärungspunkte K-04 bis K-06) und werden über die Ebene der Organisationsvorgaben eingebunden. Das Framework gilt ab Übernahme (Adoption) in der jeweils referenzierten Release-Version bis zur Deaktivierung des Overlays.
17
+ Je Projekt wird der Geltungsbereich durch das Project Overlay konkretisiert (Repositorys, Pfade, Rollen, Freigaben); ohne aktives Overlay ist produktiver Einsatz unzulässig (nur Onboarding-Übungen auf dem synthetischen Übungsrepository). Voraussetzungen auf Organisationsebene – Werkzeugfreigabe, Datenschutz- und Vertragsprüfung, administrativ gesetzte Team-Einstellungen – sind Eingangsbedingungen (offene Klärungspunkte, Kap. 29.2) und werden über die Ebene der Organisationsvorgaben eingebunden. Das Framework gilt ab Übernahme (Adoption) in der jeweils referenzierten Release-Version bis zur Deaktivierung des Overlays.
18
18
 
19
19
  ## 4.4 Produktstand und Grenzen der Aussagen
20
20
 
21
21
  Das Framework legt keinen Produktstand fest – ein Client Pack tut es. Jedes Pack nennt in seinem Kopf die **geprüfte Clientversion** und das Datum der Prüfung; ohne diese Angabe ist keine Einstufung `[TECHNISCH]` zulässig (Kap. 7a).
22
22
 
23
- Für das in diesem Dokument durchgehend verwendete Pack `devin-desktop` stehen die verbindliche Zielspanne, die geprüfte Punktversion, das Datum der Prüfung und der Stand der Produktbeobachtung **im Pack selbst** (Kap. 15.1). Sie stehen dort und nicht hier, weil sie sich mit dem Produkt ändern: Die Zielspanne ist der *geprüfte* Geltungsbereich und nicht der aktuelle Produktstand, und das Pack weist den Abstand zwischen beiden ausdrücklich aus, damit die Spanne nicht als „aktuell" gelesen wird.
23
+ Für das in diesem Dokument durchgehend verwendete Pack `devin-desktop` stehen Zielspanne, geprüfte Punktversion, Prüfdatum und Stand der Produktbeobachtung im Pack selbst (Kap. 15.1), weil sie sich mit dem Produkt ändern. Die Zielspanne ist der geprüfte Geltungsbereich, nicht der aktuelle Produktstand; das Pack weist den Abstand zwischen beiden aus.
24
24
 
25
- Alle produktbezogenen Aussagen tragen Belegstatus. **Die verbindliche Zielversion jedes ausgelieferten Packs ist festgelegt** (D-112). Wie weit seine Zeilen belegt sind, ist je Pack verschieden (Kap. 1, 7a.3); welche Zeile wie weit belegt ist, sagt die Belegspalte der jeweiligen Matrix – je Zeile, nicht als Gesamturteil.
25
+ Alle produktbezogenen Aussagen tragen Belegstatus. Die verbindliche Zielversion jedes ausgelieferten Packs ist festgelegt. Wie weit seine Zeilen belegt sind, ist je Pack verschieden (Kap. 1, 7a.3); welche Zeile wie weit belegt ist, sagt die Belegspalte der jeweiligen Matrix – je Zeile, nicht als Gesamturteil.
@@ -6,11 +6,11 @@
6
6
  | Client Pack | Abbildungsschicht für genau einen KI-Client: Pfadabbildung, Semantikabbildung und Fähigkeitsmatrix (Kap. 7a). Keine Regelebene |
7
7
  | Fähigkeitsmatrix | Einstufung jeder technischen Zusage des Frameworks je Client: `[TECHNISCH]` erzwungen · `[TEXTUELL]` nur Anweisung · `[NICHT ABBILDBAR]`. Die Zeilenzahl ist je Pack verschieden – ein Client, der für eine Zusage keinen Mechanismus hat, bekommt dafür auch keine Zeile (Kap. 7a.3) |
8
8
  | Kernzusage B1–B6 | Die sechs Zusagen, die dem Integritätsblock der Berechtigungsdatei entsprechen; eine Abweichung von `[TECHNISCH]` ist begründungs- und freigabepflichtig |
9
- | `claude-code` · `devin-desktop` · `openai-codex` | Die drei ausgelieferten Client Packs. **Welches Produkt, welcher Agent und welche geprüfte Version dahinterstehen, nennt der Kopf des jeweiligen Packs** (Kap. 7a.3, 15.1) – dieser Kern nennt es nicht, weil er sich sonst mit dem Produkt änderte (D-02, D-129). In diesem Dokument ist `devin-desktop` das durchgehende Beispiel |
9
+ | `claude-code` · `devin-desktop` · `openai-codex` · `kiro` · `cursor` | Die fünf ausgelieferten Client Packs. Welches Produkt, welcher Agent und welche geprüfte Version dahinterstehen, nennt der Kopf des jeweiligen Packs (Kap. 7a.3, 15.1); der Kern nennt es nicht, weil er sich sonst mit dem Produkt änderte. In diesem Dokument ist `devin-desktop` das durchgehende Beispiel |
10
10
  | Wurzel-Anweisungsdatei | zentrale Agentenanweisung im Wurzelverzeichnis; wird zu Beginn jeder Sitzung geladen `[DOK]`. Dateiname je Client Pack (Anhang 31.2) |
11
- | Regel (Rule) | Markdown-Datei in der Regelablage mit Ladebedingung. Quellform: Frontmatter `description`, `trigger` (`always_on`, `model_decision`, `glob`, `manual`, `agent`) und bei `glob` zusätzlich `globs`. Die Ladebedingung wird bei der Installation auf die Bedingungssprache des Clients abgebildet (D-27); welche das ist, steht im Client Pack `[DOK]` |
11
+ | Regel (Rule) | Markdown-Datei in der Regelablage mit Ladebedingung. Quellform: Frontmatter `description`, `trigger` (`always_on`, `model_decision`, `glob`, `manual`, `agent`) und bei `glob` zusätzlich `globs`. Die Ladebedingung wird bei der Installation auf die Bedingungssprache des Clients abgebildet; welche das ist, steht im Client Pack `[DOK]` |
12
12
  | Skill | versionierte, testbare Arbeitsanweisung in der Skill-Ablage (`<name>/SKILL.md`); Aufruf `/name` `[DOK]`; Standard in Kap. 18 |
13
- | Subagent | eigenständiges Agentenprofil für abgegrenzte Teilaufgaben `[DOK]`; im Framework nur das lesende Profil `fw-reviewer` |
13
+ | Subagent | eigenständiges Agentenprofil für abgegrenzte Teilaufgaben `[DOK]`; im Framework nur das lesende Profil `koolie-reviewer` |
14
14
  | Hook | konfigurierter Eingriffspunkt im Agenten-Lebenszyklus (Hook-Konfiguration), kann Aktionen blockieren `[DOK]` |
15
15
  | Permission-Modus | Bestätigungsverhalten des Clients; Framework-Standard ist der Modus, der bei Schreiben und Befehlen rückfragt. Bezeichnungen je Client (bei `devin-desktop`: Normal, Accept Edits, Smart, Bypass, Autonomous `[DOK]`) |
16
16
  | Berechtigungsregeln | `deny`/`ask`/`allow`-Regeln in der Berechtigungsdatei; `deny` gewinnt immer `[DOK]`. Die Regelmenge liegt werkzeugneutral im Kern, die Werkzeugnamen entstehen aus der Semantikabbildung (Kap. 7a) |
@@ -39,11 +39,11 @@ Allgemeingültige Regeln in elf Modulen – FW-CORE-00 bis FW-CORE-10: 00 Leitpr
39
39
 
40
40
  ## 7.3 Ebene 6 – Role Packs (optional, rollenbezogen)
41
41
 
42
- Module je Tätigkeit. **Ausgeliefert werden zwei:** Softwareentwicklung als Referenzpack (`RP-DEV`) und Requirements Engineering (`RP-RE`) mit dem Skill `role-re-ticket` – dem dreizehnten Skill des Frameworks und dem einzigen, der nicht aus dem Kern stammt. Softwarearchitektur, Testing und QA, DevOps, Dokumentation und Code Review sind strukturell vorgesehen. Ein Role Pack konkretisiert Arbeitsweise, typische Aufgaben mit Modus- und Stufenzuordnung, rollenspezifische Kontextquellen, Prüfpunkte und gegebenenfalls Skills (`role-<pack>-…`). Es enthält keine Governance-Regeln und keine Projektwerte; Aktivierung erfolgt je Projekt über das Overlay; die Laufzeitfassung `30-*` lädt bei Relevanz; kennt ein Client keine modellentschiedene Ladebedingung, lädt sie dort unbedingt.
42
+ Module je Tätigkeit. **Ausgeliefert werden zwei:** Softwareentwicklung als Referenzpack (`RP-DEV`) und Requirements Engineering (`RP-RE`) mit dem Skill `koolie-ticket`, dem einzigen Skill, der nicht aus dem Kern stammt. Softwarearchitektur, Testing und QA, DevOps, Dokumentation und Code Review sind strukturell vorgesehen. Ein Role Pack konkretisiert Arbeitsweise, typische Aufgaben mit Modus- und Stufenzuordnung, rollenspezifische Kontextquellen, Prüfpunkte und gegebenenfalls Skills (`koolie-…`). Es enthält keine Governance-Regeln und keine Projektwerte; Aktivierung erfolgt je Projekt über das Overlay; die Laufzeitfassung `30-*` lädt bei Relevanz; kennt ein Client keine modellentschiedene Ladebedingung, lädt sie dort unbedingt.
43
43
 
44
44
  ## 7.4 Ebene 5 – Technology Packs (optional, technologiebezogen)
45
45
 
46
- Module je Technologieaspekt (Programmiersprache, Anwendungsframework, Build-System, Testframework, Datenbank, API-Technologie, Frontend, Backend, Container, CI/CD). Inhalt: Konventionen und Idiome, Testkonventionen, typische Fehlerquellen KI-generierten Codes in dieser Technologie, technologiespezifische Sicherheitsmuster, gegebenenfalls Skills (`tech-<pack>-…`). Die Laufzeitfassung `40-*` bindet sich an die Dateimuster der Technologie und lädt genau dann, wenn passende Dateien berührt werden `[DOK]` – vorausgesetzt, der Client kennt an Dateimuster gebundene Regeln. Ein Client ohne diesen Mechanismus braucht einen der Ersatzwege aus seiner Fähigkeitsmatrix. Ausgeliefert wird bewusst eine Vorlage statt eines konkreten Packs; das erste Pack für `<TECH_STACK>` entsteht in Roadmap-AP4.
46
+ Module je Technologieaspekt (Programmiersprache, Anwendungsframework, Build-System, Testframework, Datenbank, API-Technologie, Frontend, Backend, Container, CI/CD). Inhalt: Konventionen und Idiome, Testkonventionen, typische Fehlerquellen KI-generierten Codes in dieser Technologie, technologiespezifische Sicherheitsmuster, gegebenenfalls Skills (`koolie-…`). Die Laufzeitfassung `40-*` bindet sich an die Dateimuster der Technologie und lädt genau dann, wenn passende Dateien berührt werden `[DOK]` – vorausgesetzt, der Client kennt an Dateimuster gebundene Regeln. Ein Client ohne diesen Mechanismus braucht einen der Ersatzwege aus seiner Fähigkeitsmatrix. Ausgeliefert wird bewusst eine Vorlage statt eines konkreten Packs; das erste Pack für `<TECH_STACK>` entsteht in Roadmap-AP4.
47
47
 
48
48
  ## 7.5 Ebene 4 – Project Overlay (ausschließlich projektspezifisch)
49
49
 
@@ -26,27 +26,27 @@ Kern jedes Client Packs. Sie stuft jede technische Zusage des Frameworks in eine
26
26
 
27
27
  Sechs dieser Zusagen sind **Kernzusagen** (B1 bis B6) und entsprechen dem Integritätsblock der Berechtigungsdatei. Weicht eine von `[TECHNISCH]` ab, ist sie im Pack einzeln zu begründen, im Overlay als Ausnahme zu führen und durch `<SECURITY_CONTACT>` freizugeben.
28
28
 
29
- Dieses Dokument verwendet `devin-desktop` als durchgehendes Beispiel; seine Matrix steht in Kap. 15.1. Zum Vergleich hier die beiden anderen Packs – derselbe Kern, andere Clients. Zuerst `claude-code`:
29
+ Dieses Dokument verwendet `devin-desktop` als durchgehendes Beispiel; seine Matrix steht in Kap. 15.1. Zum Vergleich folgen zwei weitere Packs, derselbe Kern an anderen Clients. Zuerst `claude-code`:
30
30
 
31
31
  {{EMBED-RAW:.koolie/core/clients/claude-code/CLIENT_PACK.md:1}}
32
- Dann `openai-codex`, dessen Belege durchweg Messungen sind (D-396):
32
+ Dann `openai-codex`, dessen Belege durchweg Messungen sind:
33
33
 
34
34
  {{EMBED-RAW:.koolie/core/clients/openai-codex/CLIENT_PACK.md:1}}
35
- Der Vergleich der Matrizen ist die Probe aufs Exempel: `devin-desktop` und `claude-code` bilden alle sechs Kernzusagen ab – **drei davon technisch in jedem Zugriffskanal** (B1, B2, B6), drei nur für den direkten Zugriff (B3, B4, B5); für Shell und Unterprozess tragen sie die Regelschicht. Bei `openai-codex` sind B3 und B5 `[NICHT ABBILDBAR]`; das Pack begründet es, und ein Projekt braucht dafür eine dokumentierte Ausnahme mit Freigabe durch `<SECURITY_CONTACT>` (siehe oben).
35
+ Im Vergleich: `devin-desktop` und `claude-code` bilden alle sechs Kernzusagen ab, drei davon technisch in jedem Zugriffskanal (B1, B2, B6), drei nur für den direkten Zugriff (B3, B4, B5); für Shell und Unterprozess trägt dort die Regelschicht. Bei `openai-codex` sind B3 und B5 `[NICHT ABBILDBAR]`; das Pack begründet es, und ein Projekt braucht dafür eine dokumentierte Ausnahme mit Freigabe durch `<SECURITY_CONTACT>` (siehe oben).
36
36
 
37
- **Ein Vergleich der Gesamtzahlen trägt dagegen nicht, und das hat zwei Gründe.** Erstens sind die Matrizen unterschiedlich lang. Zweitens – und das wiegt schwerer – **messen die Zahlen Verschiedenes:** Die Belege sind auf verschiedenen Wegen gewonnen – durch Beobachtung an einer laufenden Installation, durch Messung am Client oder durch Abgleich mit der Herstellerdokumentation –, und welcher Weg für eine Zeile gilt, sagt ihre Belegspalte. Bei `claude-code` ist der Beleg überwiegend ein Dokumentenabgleich, bei `openai-codex` durchweg eine Messung. **Ein Dokumentenabgleich belegt `[DOK]`, nicht `[TECHNISCH]` im Sinne einer beobachteten Wirkung.** Die Summen stehen in Abschnitt 3 jedes Packs; Prüfung 31 rechnet sie bei jedem Validatorlauf aus der Matrix nach.
37
+ **Ein Vergleich der Gesamtzahlen trägt dagegen nicht.** Die Matrizen sind unterschiedlich lang, und die Zahlen messen Verschiedenes: Die Belege stammen aus Beobachtung an einer laufenden Installation, aus Messung am Client oder aus dem Abgleich mit der Herstellerdokumentation; welcher Weg für eine Zeile gilt, sagt ihre Belegspalte. Bei `claude-code` ist der Beleg überwiegend ein Dokumentenabgleich, bei `openai-codex` durchweg eine Messung. **Ein Dokumentenabgleich belegt `[DOK]`, nicht `[TECHNISCH]` im Sinne einer beobachteten Wirkung.** Die Summen stehen in Abschnitt 3 jedes Packs; Prüfung 31 rechnet sie bei jedem Validatorlauf aus der Matrix nach.
38
38
 
39
39
  ## 7a.4 Form und Semantik
40
40
 
41
- Ein Client Pack enthält **drei Dateien** – die Fähigkeitsmatrix `CLIENT_PACK.md`, die maschinenlesbare Abbildung `manifest.json` und eine erklärende README der Laufzeitschicht unter `root-template/`. Alles Übrige liegt einmal im Kern und wird bei der Installation übersetzt. Dabei sind zwei Fälle zu unterscheiden, und der Unterschied ist wesentlich:
41
+ Ein Client Pack enthält drei Dateien: die Fähigkeitsmatrix `CLIENT_PACK.md`, die maschinenlesbare Abbildung `manifest.json` und eine erklärende README der Laufzeitschicht unter `root-template/`. Alles Übrige liegt einmal im Kern und wird bei der Installation übersetzt. Dabei gibt es zwei Fälle:
42
42
 
43
43
  **Formtransformation.** Der Inhalt ist derselbe, nur die Schreibweise unterscheidet sich – ein Frontmatter-Feld heißt anders, eine Werkzeugliste ist kommagetrennt statt eingerückt. Das betrifft Regeltexte, Wurzel-Anweisung, Agentenprofil, Skills und die Vorlagen.
44
44
 
45
- Die Ladebedingung einer Regel ist dagegen **keine** Formfrage, sondern eine zweite Semantikabbildung (D-27): Die Kernquelle kennt fünf Ladetrigger, ein Client kennt seine eigene Bedingungssprache. Bei `claude-code` heißt sie `paths` und bindet eine Regel an Glob-Muster; `always_on` und `model_decision` bilden dort auf unbedingtes Laden ab – eine Verschärfung. Ein Ladetrigger ohne Eintrag in der Abbildung lässt die Installation scheitern; er wird nicht verworfen.
45
+ Die Ladebedingung einer Regel ist dagegen keine Formfrage, sondern eine zweite Semantikabbildung: Die Kernquelle kennt fünf Ladetrigger, ein Client kennt seine eigene Bedingungssprache. Bei `claude-code` heißt sie `paths` und bindet eine Regel an Glob-Muster; `always_on` und `model_decision` bilden dort auf unbedingtes Laden ab – eine Verschärfung. Ein Ladetrigger ohne Eintrag in der Abbildung lässt die Installation scheitern; er wird nicht verworfen.
46
46
 
47
47
  **Semantikabbildung.** Die Werkzeuge selbst unterscheiden sich. Ein Client trennt Ändern und Anlegen in zwei Werkzeuge, ein anderer nicht; Befehlsverbote greifen hier wörtlich (`Exec(git reset --hard)`) und dort präfixbasiert (`Bash(git reset:*)`); Netzzugriff ist einmal ein Werkzeug mit Muster und einmal zwei ohne. Das betrifft Berechtigungen und Hooks – und damit genau die Regeln, an denen die Kernzusagen hängen.
48
48
 
49
- Für den zweiten Fall genügt Sorgfalt nicht. Eine beim Nachziehen vergessene Regel wäre eine stille Lücke, während die Fähigkeitsmatrix weiterhin `[TECHNISCH]` behauptet. Die Abbildung erzwingt deshalb drei Eigenschaften und bricht die Installation ab, wenn eine verletzt ist:
49
+ Eine beim Nachziehen vergessene Regel wäre hier eine stille Lücke, während die Fähigkeitsmatrix weiter `[TECHNISCH]` behauptet. Die Abbildung erzwingt deshalb drei Eigenschaften und bricht die Installation ab, wenn eine verletzt ist:
50
50
 
51
51
  | Zusicherung | Warum |
52
52
  |---|---|
@@ -61,6 +61,6 @@ Die werkzeugneutrale Regelmenge, aus der jedes Pack seine Berechtigungen erzeugt
61
61
  {{EMBED:.koolie/core/framework/runtime/permissions.json:json}}
62
62
  ## 7a.5 Was das für ein Projekt bedeutet
63
63
 
64
- Die Wahl des Client Packs fällt bei der Erstinstallation (`install.py --client`; der Dialog der Starter fragt sie ab, Kap. 15.2) und wird im Overlay dokumentiert. Sie ist keine Geschmacksfrage: Bevor ein Pack in Betrieb geht, ist seine Fähigkeitsmatrix zu lesen und jede Kernzusage ohne technische Durchsetzung freizugeben. Ein Wechsel des Clients ist ein eigener Vorgang mit erneuter Bewertung – nicht ein Schalter.
64
+ Die Wahl des Client Packs fällt bei der Erstinstallation (`install.py --client`; der Dialog fragt sie ab, Kap. 15.2) und wird im Overlay dokumentiert. Bevor ein Pack in Betrieb geht, ist seine Fähigkeitsmatrix zu lesen und jede Kernzusage ohne technische Durchsetzung freizugeben. Ein Wechsel des Clients ist ein eigener Vorgang mit erneuter Bewertung.
65
65
 
66
- Für ein weiteres Client Pack ist Roadmap-AP2 mit der Fähigkeitsmatrix des neuen Packs zu wiederholen. Solange dessen Zielversion nicht festgelegt und geprüft ist, gilt das Pack als **unbelegt**.
66
+ Ein neues Client Pack durchläuft dieselbe Validierung an einer realen Installation (Roadmap-AP2) mit seiner eigenen Fähigkeitsmatrix. Solange seine Zielversion nicht festgelegt und geprüft ist, gilt es als unbelegt.
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## 8.1 Das Trennprinzip
4
4
 
5
- Die Wiederverwendbarkeit des Frameworks steht und fällt mit einer harten Regel: **Ein Projektwechsel tauscht ausschließlich Ebene 4 (Project Overlay); er darf niemals Anpassungen am Framework Core erzwingen.** Umgekehrt enthält der Core keine einzige projektspezifische Angabe – wo er Projektwissen braucht, definiert er eine benannte Schnittstelle in Form eines registrierten Platzhalters (`<ALLOWED_PATHS>`, `<TEST_COMMAND>`, `<APPROVAL_ROLE>` …), die das Overlay füllt.
5
+ Die Wiederverwendbarkeit hängt an einer Regel: **Ein Projektwechsel tauscht ausschließlich Ebene 4 (Project Overlay); er darf nie Anpassungen am Framework Core erzwingen.** Umgekehrt enthält der Core keine projektspezifische Angabe; wo er Projektwissen braucht, definiert er eine benannte Schnittstelle in Form eines registrierten Platzhalters (`<ALLOWED_PATHS>`, `<TEST_COMMAND>`, `<APPROVAL_ROLE>` …), die das Overlay füllt.
6
6
 
7
7
  ## 8.2 Mechanik der Trennung
8
8
 
@@ -10,7 +10,7 @@ Die Wiederverwendbarkeit des Frameworks steht und fällt mit einer harten Regel:
10
10
  |---|---|
11
11
  | Platzhalter-Schnittstellen (Anhang 31.3) | Core-Regeln bleiben generisch formulierbar; Projekte füllen Werte ausschließlich im Overlay und in der Berechtigungsdatei |
12
12
  | Verschärfungsprinzip (Kap. 25) | Das Overlay darf konkretisieren und verschärfen, nie lockern – Core-Garantien gelten damit projektübergreifend |
13
- | Getrennte Ablage und Ownership | Core: Framework Owner über Releases; Overlay: Overlay Owner über den Projektprozess; technische Schreibsperren (`Write(.koolie/core/**)` – das Kernverzeichnis als Ganzes, einschließlich der Skripte, die die Schutzzusagen durchsetzen –, dazu Laufzeitschicht, Wurzel-Anweisungsdatei und `Write(.koolie/project-overlay/**)` als `deny`) |
13
+ | Getrennte Ablage und Ownership | Core: Framework Owner über Releases; Overlay: Overlay Owner über den Projektprozess; technische Schreibsperren: `Write(.koolie/core/**)` für das ganze Kernverzeichnis einschließlich der Skripte, die die Schutzzusagen durchsetzen, dazu Laufzeitschicht und Wurzel-Anweisungsdatei als `deny`; das Overlay sperrt der Schutz-Hook, solange kein Mandat es deckt |
14
14
  | Dokumenten-Manifest | Projektwissen wird als registriertes Dokument mit Klasse und Ladeverhalten eingebunden – nie durch Editieren von Core-Dateien (Kap. 17) |
15
15
  | Integritätsprüfung | `validate-framework.py` prüft unter anderem, dass die Kernregeln in der Berechtigungsdatei unverändert enthalten sind (`_core_rules_integrity`) und Overlay-Pflichtfelder gefüllt sind (`--strict-overlay`) |
16
16
  | Release-Abgleich | Bei Übernahme und Aktualisierung werden Core-Bestandteile byte-gleich aus dem Release übernommen (Adoption Guide, CL-10/CL-11) |
@@ -21,4 +21,4 @@ Regeln mit gemischtem Charakter werden getrennt: die generische Logik wandert mi
21
21
 
22
22
  ## 8.4 Nachweis der Trennung
23
23
 
24
- Alle versionierten Markdown-Dateien des Kerns – beim Bau dieses Dokuments {{ZAHL:*.md}} – werden bei jedem Validatorlauf automatisiert auf Projektneutralität geprüft (Sperrbegriffs-, E-Mail-, IP-, Hostnamen- und URL-Prüfungen; Kap. 26). **Der Validator prüft zusätzlich die Werkzeugneutralität selbst:** Kein anweisender Träger des Kerns nennt einen Produktnamen oder einen Pfad, der genau einem Client Pack gehört (Prüfung 14 und 48). Sämtliche variablen Inhalte laufen über das Platzhalterregister; die Overlay-Vorlage ist eine reine Vorlage mit Ausfüllhinweisen und `<TBD>`-Feldern. Das Overlay-Muster *General Development* (`--overlay general`) füllt davon nur Platzhalter, deren Wert eine Sperre ist, und bringt allgemeine, projektneutrale Musterdokumente mit (D-355, D-359). Synthetische Beispiele sind als solche gekennzeichnet und verwenden offensichtlich fiktive Bezeichner.
24
+ Alle versionierten Markdown-Dateien des Kerns – beim Bau dieses Dokuments {{ZAHL:*.md}} – werden bei jedem Validatorlauf automatisiert auf Projektneutralität geprüft (Sperrbegriffs-, E-Mail-, IP-, Hostnamen- und URL-Prüfungen; Kap. 26). Der Validator prüft außerdem die Werkzeugneutralität: Kein anweisender Träger des Kerns nennt einen Produktnamen oder einen Pfad, der genau einem Client Pack gehört (Prüfung 14 und 48). Sämtliche variablen Inhalte laufen über das Platzhalterregister; die Overlay-Vorlage ist eine reine Vorlage mit Ausfüllhinweisen und `<TBD>`-Feldern. Das Overlay-Muster *General Development* (`--overlay general`) füllt davon nur Platzhalter, deren Wert eine Sperre ist, und bringt allgemeine, projektneutrale Musterdokumente mit. Synthetische Beispiele sind als solche gekennzeichnet und verwenden offensichtlich fiktive Bezeichner.