@renoxar/koolie 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (693) hide show
  1. package/.gitattributes +16 -0
  2. package/.gitignore +51 -0
  3. package/.koolie/QUELLREPOSITORIUM.md +18 -0
  4. package/.koolie/core/CHANGELOG.md +11832 -0
  5. package/.koolie/core/LICENSE +674 -0
  6. package/.koolie/core/LICENSE-HINWEIS.md +98 -0
  7. package/.koolie/core/OWNERS.md +36 -0
  8. package/.koolie/core/VERSION +1 -0
  9. package/.koolie/core/banner.py +397 -0
  10. package/.koolie/core/build/README.md +34 -0
  11. package/.koolie/core/build/assemble.py +354 -0
  12. package/.koolie/core/build/build-docx.py +194 -0
  13. package/.koolie/core/build/doc/00-kopf.md +18 -0
  14. package/.koolie/core/build/doc/01-executive-summary.md +24 -0
  15. package/.koolie/core/build/doc/02-zielbild.md +13 -0
  16. package/.koolie/core/build/doc/03-ziele-nichtziele.md +28 -0
  17. package/.koolie/core/build/doc/04-geltungsbereich.md +25 -0
  18. package/.koolie/core/build/doc/05-glossar.md +47 -0
  19. package/.koolie/core/build/doc/06-leitprinzipien.md +5 -0
  20. package/.koolie/core/build/doc/07-architektur.md +60 -0
  21. package/.koolie/core/build/doc/07a-abbildungsschicht.md +66 -0
  22. package/.koolie/core/build/doc/08-trennung.md +24 -0
  23. package/.koolie/core/build/doc/09-betriebsmodi.md +18 -0
  24. package/.koolie/core/build/doc/10-arbeitsablauf.md +5 -0
  25. package/.koolie/core/build/doc/11-datenschutz.md +5 -0
  26. package/.koolie/core/build/doc/12-sicherheit.md +5 -0
  27. package/.koolie/core/build/doc/13-risiko.md +5 -0
  28. package/.koolie/core/build/doc/14-rollen.md +9 -0
  29. package/.koolie/core/build/doc/15-referenzstruktur.md +124 -0
  30. package/.koolie/core/build/doc/16-agentenanweisung.md +8 -0
  31. package/.koolie/core/build/doc/17-overlay.md +29 -0
  32. package/.koolie/core/build/doc/18-skill-standard.md +5 -0
  33. package/.koolie/core/build/doc/19-skill-template.md +5 -0
  34. package/.koolie/core/build/doc/20-referenz-skills.md +70 -0
  35. package/.koolie/core/build/doc/21-prompts.md +53 -0
  36. package/.koolie/core/build/doc/22-checklisten.md +49 -0
  37. package/.koolie/core/build/doc/23-entscheidungsbaeume.md +29 -0
  38. package/.koolie/core/build/doc/24-onboarding.md +33 -0
  39. package/.koolie/core/build/doc/25-governance.md +35 -0
  40. package/.koolie/core/build/doc/26-qs-test.md +9 -0
  41. package/.koolie/core/build/doc/27-pilot.md +13 -0
  42. package/.koolie/core/build/doc/28-uebernahme.md +5 -0
  43. package/.koolie/core/build/doc/29-grenzen.md +87 -0
  44. package/.koolie/core/build/doc/30-roadmap.md +5 -0
  45. package/.koolie/core/build/doc/31-anhaenge.md +151 -0
  46. package/.koolie/core/build/doc/32-abschluss.md +92 -0
  47. package/.koolie/core/build/ref-a4.docx +0 -0
  48. package/.koolie/core/checklists/01-preflight.md +54 -0
  49. package/.koolie/core/checklists/02-privacy-context.md +51 -0
  50. package/.koolie/core/checklists/03-before-code-change.md +51 -0
  51. package/.koolie/core/checklists/04-review-ai-code.md +58 -0
  52. package/.koolie/core/checklists/05-testing.md +48 -0
  53. package/.koolie/core/checklists/06-security.md +50 -0
  54. package/.koolie/core/checklists/07-new-dependency.md +57 -0
  55. package/.koolie/core/checklists/08-merge-request.md +47 -0
  56. package/.koolie/core/checklists/09-onboarding.md +52 -0
  57. package/.koolie/core/checklists/10-project-adoption.md +74 -0
  58. package/.koolie/core/checklists/11-framework-release.md +71 -0
  59. package/.koolie/core/checklists/README.md +28 -0
  60. package/.koolie/core/clientmap.py +1358 -0
  61. package/.koolie/core/clients/README.md +113 -0
  62. package/.koolie/core/clients/_template/CLIENT_PACK.md +197 -0
  63. package/.koolie/core/clients/claude-code/CLIENT_PACK.md +383 -0
  64. package/.koolie/core/clients/claude-code/manifest.json +232 -0
  65. package/.koolie/core/clients/claude-code/root-template/.claude/README.md +127 -0
  66. package/.koolie/core/clients/cursor/CLIENT_PACK.md +229 -0
  67. package/.koolie/core/clients/cursor/manifest.json +330 -0
  68. package/.koolie/core/clients/cursor/root-template/.cursor/README.md +36 -0
  69. package/.koolie/core/clients/devin-desktop/CLIENT_PACK.md +251 -0
  70. package/.koolie/core/clients/devin-desktop/manifest.json +163 -0
  71. package/.koolie/core/clients/devin-desktop/root-template/.devin/README.md +79 -0
  72. package/.koolie/core/clients/kiro/CLIENT_PACK.md +223 -0
  73. package/.koolie/core/clients/kiro/manifest.json +300 -0
  74. package/.koolie/core/clients/kiro/root-template/.kiro/README.md +37 -0
  75. package/.koolie/core/clients/openai-codex/CLIENT_PACK.md +257 -0
  76. package/.koolie/core/clients/openai-codex/manifest.json +208 -0
  77. package/.koolie/core/clients/openai-codex/root-template/.codex/README.md +35 -0
  78. package/.koolie/core/decision-trees/01-context-allowed.md +46 -0
  79. package/.koolie/core/decision-trees/02-may-ai-do-task.md +47 -0
  80. package/.koolie/core/decision-trees/03-analyze-or-modify.md +50 -0
  81. package/.koolie/core/decision-trees/04-required-review.md +49 -0
  82. package/.koolie/core/decision-trees/05-stop-or-escalate.md +47 -0
  83. package/.koolie/core/decision-trees/06-rule-placement.md +58 -0
  84. package/.koolie/core/decision-trees/README.md +14 -0
  85. package/.koolie/core/docs/ADOPTION_GUIDE.md +582 -0
  86. package/.koolie/core/docs/DOCUMENTATION_STANDARD.md +91 -0
  87. package/.koolie/core/docs/PLACEHOLDER_REGISTRY.md +79 -0
  88. package/.koolie/core/docs/ROADMAP.md +848 -0
  89. package/.koolie/core/docs/RUNTIME_GLOSSARY.md +113 -0
  90. package/.koolie/core/examples/README.md +11 -0
  91. package/.koolie/core/examples/example-ergebnisbericht.md +31 -0
  92. package/.koolie/core/examples/example-mr-description.md +31 -0
  93. package/.koolie/core/examples/example-overlay-runtime.md +48 -0
  94. package/.koolie/core/framework/core/00-principles.md +93 -0
  95. package/.koolie/core/framework/core/01-governance.md +58 -0
  96. package/.koolie/core/framework/core/02-privacy.md +141 -0
  97. package/.koolie/core/framework/core/03-security.md +86 -0
  98. package/.koolie/core/framework/core/04-quality.md +48 -0
  99. package/.koolie/core/framework/core/05-working-model.md +199 -0
  100. package/.koolie/core/framework/core/06-prompting-rules.md +51 -0
  101. package/.koolie/core/framework/core/07-review-rules.md +52 -0
  102. package/.koolie/core/framework/core/08-skill-conventions.md +115 -0
  103. package/.koolie/core/framework/core/09-risk-model.md +87 -0
  104. package/.koolie/core/framework/core/10-error-escalation.md +53 -0
  105. package/.koolie/core/framework/org-policies/MAPPING_CLASSIFICATION.md +16 -0
  106. package/.koolie/core/framework/org-policies/README.md +29 -0
  107. package/.koolie/core/framework/overlay-patterns/general/documents/branching-strategy/muster-general.md +43 -0
  108. package/.koolie/core/framework/overlay-patterns/general/documents/coding-guidelines/muster-general.md +82 -0
  109. package/.koolie/core/framework/overlay-patterns/general/documents/definition-of-done/muster-general.md +52 -0
  110. package/.koolie/core/framework/overlay-patterns/general/documents/definition-of-ready/muster-general.md +54 -0
  111. package/.koolie/core/framework/overlay-patterns/general/documents/quality/muster-general.md +59 -0
  112. package/.koolie/core/framework/overlay-patterns/general/documents/security/muster-general.md +52 -0
  113. package/.koolie/core/framework/overlay-patterns/general.md +150 -0
  114. package/.koolie/core/framework/role-packs/README.md +63 -0
  115. package/.koolie/core/framework/role-packs/_template/ROLE_PACK.md +58 -0
  116. package/.koolie/core/framework/role-packs/requirements-engineering/ROLE_PACK.md +158 -0
  117. package/.koolie/core/framework/role-packs/requirements-engineering/runtime/30-role-requirements-engineering.md +88 -0
  118. package/.koolie/core/framework/role-packs/requirements-engineering/skills/role-re-ticket/CHANGELOG.md +10 -0
  119. package/.koolie/core/framework/role-packs/requirements-engineering/skills/role-re-ticket/EXAMPLES.md +148 -0
  120. package/.koolie/core/framework/role-packs/requirements-engineering/skills/role-re-ticket/SKILL.md +195 -0
  121. package/.koolie/core/framework/role-packs/requirements-engineering/skills/role-re-ticket/TESTS.md +22 -0
  122. package/.koolie/core/framework/role-packs/software-development/ROLE_PACK.md +95 -0
  123. package/.koolie/core/framework/role-packs/software-development/runtime/30-role-software-development.md +26 -0
  124. package/.koolie/core/framework/runtime/agents/fw-reviewer.md +34 -0
  125. package/.koolie/core/framework/runtime/client-settings.json +3 -0
  126. package/.koolie/core/framework/runtime/hooks.json +20 -0
  127. package/.koolie/core/framework/runtime/mcp-config.example.json +4 -0
  128. package/.koolie/core/framework/runtime/permissions.json +106 -0
  129. package/.koolie/core/framework/runtime/root-instruction-local.example.md +19 -0
  130. package/.koolie/core/framework/runtime/root-instruction.md +116 -0
  131. package/.koolie/core/framework/runtime/rules/00-framework-core.md +49 -0
  132. package/.koolie/core/framework/runtime/rules/10-privacy-security.md +49 -0
  133. package/.koolie/core/framework/runtime/rules/15-development-rules.md +41 -0
  134. package/.koolie/core/framework/runtime/rules/16-plan-spezifikation.md +32 -0
  135. package/.koolie/core/framework/runtime/rules/20-project-overlay.md +60 -0
  136. package/.koolie/core/framework/skills/fw-bugfix-prepare/CHANGELOG.md +14 -0
  137. package/.koolie/core/framework/skills/fw-bugfix-prepare/EXAMPLES.md +57 -0
  138. package/.koolie/core/framework/skills/fw-bugfix-prepare/SKILL.md +177 -0
  139. package/.koolie/core/framework/skills/fw-bugfix-prepare/TESTS.md +15 -0
  140. package/.koolie/core/framework/skills/fw-change-analyze/CHANGELOG.md +12 -0
  141. package/.koolie/core/framework/skills/fw-change-analyze/EXAMPLES.md +66 -0
  142. package/.koolie/core/framework/skills/fw-change-analyze/SKILL.md +167 -0
  143. package/.koolie/core/framework/skills/fw-change-analyze/TESTS.md +16 -0
  144. package/.koolie/core/framework/skills/fw-change-small/CHANGELOG.md +13 -0
  145. package/.koolie/core/framework/skills/fw-change-small/EXAMPLES.md +68 -0
  146. package/.koolie/core/framework/skills/fw-change-small/SKILL.md +175 -0
  147. package/.koolie/core/framework/skills/fw-change-small/TESTS.md +13 -0
  148. package/.koolie/core/framework/skills/fw-code-explain/CHANGELOG.md +11 -0
  149. package/.koolie/core/framework/skills/fw-code-explain/EXAMPLES.md +61 -0
  150. package/.koolie/core/framework/skills/fw-code-explain/SKILL.md +163 -0
  151. package/.koolie/core/framework/skills/fw-code-explain/TESTS.md +11 -0
  152. package/.koolie/core/framework/skills/fw-docs-update/CHANGELOG.md +10 -0
  153. package/.koolie/core/framework/skills/fw-docs-update/EXAMPLES.md +59 -0
  154. package/.koolie/core/framework/skills/fw-docs-update/SKILL.md +160 -0
  155. package/.koolie/core/framework/skills/fw-docs-update/TESTS.md +12 -0
  156. package/.koolie/core/framework/skills/fw-error-analyze/CHANGELOG.md +10 -0
  157. package/.koolie/core/framework/skills/fw-error-analyze/EXAMPLES.md +67 -0
  158. package/.koolie/core/framework/skills/fw-error-analyze/SKILL.md +160 -0
  159. package/.koolie/core/framework/skills/fw-error-analyze/TESTS.md +12 -0
  160. package/.koolie/core/framework/skills/fw-mr-description/CHANGELOG.md +12 -0
  161. package/.koolie/core/framework/skills/fw-mr-description/EXAMPLES.md +69 -0
  162. package/.koolie/core/framework/skills/fw-mr-description/SKILL.md +170 -0
  163. package/.koolie/core/framework/skills/fw-mr-description/TESTS.md +12 -0
  164. package/.koolie/core/framework/skills/fw-overlay-pflege/CHANGELOG.md +7 -0
  165. package/.koolie/core/framework/skills/fw-overlay-pflege/EXAMPLES.md +48 -0
  166. package/.koolie/core/framework/skills/fw-overlay-pflege/SKILL.md +147 -0
  167. package/.koolie/core/framework/skills/fw-overlay-pflege/TESTS.md +13 -0
  168. package/.koolie/core/framework/skills/fw-plan/CHANGELOG.md +14 -0
  169. package/.koolie/core/framework/skills/fw-plan/EXAMPLES.md +69 -0
  170. package/.koolie/core/framework/skills/fw-plan/SKILL.md +168 -0
  171. package/.koolie/core/framework/skills/fw-plan/TESTS.md +14 -0
  172. package/.koolie/core/framework/skills/fw-refactor/CHANGELOG.md +10 -0
  173. package/.koolie/core/framework/skills/fw-refactor/EXAMPLES.md +70 -0
  174. package/.koolie/core/framework/skills/fw-refactor/SKILL.md +173 -0
  175. package/.koolie/core/framework/skills/fw-refactor/TESTS.md +14 -0
  176. package/.koolie/core/framework/skills/fw-repo-analyze/CHANGELOG.md +10 -0
  177. package/.koolie/core/framework/skills/fw-repo-analyze/EXAMPLES.md +52 -0
  178. package/.koolie/core/framework/skills/fw-repo-analyze/SKILL.md +149 -0
  179. package/.koolie/core/framework/skills/fw-repo-analyze/TESTS.md +11 -0
  180. package/.koolie/core/framework/skills/fw-review-support/CHANGELOG.md +12 -0
  181. package/.koolie/core/framework/skills/fw-review-support/EXAMPLES.md +69 -0
  182. package/.koolie/core/framework/skills/fw-review-support/SKILL.md +179 -0
  183. package/.koolie/core/framework/skills/fw-review-support/TESTS.md +13 -0
  184. package/.koolie/core/framework/skills/fw-tests/CHANGELOG.md +9 -0
  185. package/.koolie/core/framework/skills/fw-tests/EXAMPLES.md +65 -0
  186. package/.koolie/core/framework/skills/fw-tests/SKILL.md +169 -0
  187. package/.koolie/core/framework/skills/fw-tests/TESTS.md +12 -0
  188. package/.koolie/core/framework/tech-packs/README.md +15 -0
  189. package/.koolie/core/framework/tech-packs/_template/TECH_PACK.md +61 -0
  190. package/.koolie/core/governance/ADOPTION_REGISTRY.md +89 -0
  191. package/.koolie/core/governance/CHANGE_REQUEST_TEMPLATE.md +60 -0
  192. package/.koolie/core/governance/DECISION_LOG.md +779 -0
  193. package/.koolie/core/governance/EXCEPTION_PROCESS.md +31 -0
  194. package/.koolie/core/governance/FEEDBACK_PROCESS.md +34 -0
  195. package/.koolie/core/governance/FRAMEWORK_DEV_PROFILE.md +135 -0
  196. package/.koolie/core/governance/INCIDENT_HANDLING.md +47 -0
  197. package/.koolie/core/governance/PRIORITY_HIERARCHY.md +61 -0
  198. package/.koolie/core/governance/RACI.md +37 -0
  199. package/.koolie/core/governance/RELEASE_PROCESS.md +183 -0
  200. package/.koolie/core/governance/change-requests/CR-2026-001-definition-release-1-0-0.md +67 -0
  201. package/.koolie/core/governance/change-requests/CR-2026-002-client-packs.md +63 -0
  202. package/.koolie/core/governance/change-requests/CR-2026-003-install-client-schalter.md +70 -0
  203. package/.koolie/core/governance/change-requests/CR-2026-004-client-pack-claude-code.md +82 -0
  204. package/.koolie/core/governance/change-requests/CR-2026-005-kern-neutralisierung.md +75 -0
  205. package/.koolie/core/governance/change-requests/CR-2026-006-gemeinsame-skill-quelle.md +77 -0
  206. package/.koolie/core/governance/change-requests/CR-2026-007-geteilte-kernbestandteile.md +80 -0
  207. package/.koolie/core/governance/change-requests/CR-2026-008-berechtigungen-und-hooks.md +85 -0
  208. package/.koolie/core/governance/change-requests/CR-2026-009-umbenennung-leitwerk.md +77 -0
  209. package/.koolie/core/governance/change-requests/CR-2026-010-restduplikation.md +73 -0
  210. package/.koolie/core/governance/change-requests/CR-2026-011-hauptdokument.md +72 -0
  211. package/.koolie/core/governance/change-requests/CR-2026-012-schreibschutz-kernverzeichnis.md +106 -0
  212. package/.koolie/core/governance/change-requests/CR-2026-013-validator-blindstellen.md +128 -0
  213. package/.koolie/core/governance/change-requests/CR-2026-014-kurzform-langform.md +125 -0
  214. package/.koolie/core/governance/change-requests/CR-2026-015-versionskette.md +150 -0
  215. package/.koolie/core/governance/change-requests/CR-2026-016-ap2-claude-code.md +127 -0
  216. package/.koolie/core/governance/change-requests/CR-2026-017-ladebedingungen-claude-code.md +173 -0
  217. package/.koolie/core/governance/change-requests/CR-2026-018-quellenliste-claude-code.md +121 -0
  218. package/.koolie/core/governance/change-requests/CR-2026-019-strukturentscheidungen-fortschreiben.md +143 -0
  219. package/.koolie/core/governance/change-requests/CR-2026-020-akteursbezeichnung.md +118 -0
  220. package/.koolie/core/governance/change-requests/CR-2026-021-hook-interpreter.md +113 -0
  221. package/.koolie/core/governance/change-requests/CR-2026-022-artefaktversionen.md +73 -0
  222. package/.koolie/core/governance/change-requests/CR-2026-023-shell-lesesperre.md +128 -0
  223. package/.koolie/core/governance/change-requests/CR-2026-024-clientbindungen.md +78 -0
  224. package/.koolie/core/governance/change-requests/CR-2026-025-betriebsmodi.md +110 -0
  225. package/.koolie/core/governance/change-requests/CR-2026-026-fail-closed.md +134 -0
  226. package/.koolie/core/governance/change-requests/CR-2026-027-zeichenlimit-einstufung.md +105 -0
  227. package/.koolie/core/governance/change-requests/CR-2026-028-berechtigungsmodi.md +130 -0
  228. package/.koolie/core/governance/change-requests/CR-2026-029-hook-ablageort.md +115 -0
  229. package/.koolie/core/governance/change-requests/CR-2026-030-lesende-werkzeuge.md +143 -0
  230. package/.koolie/core/governance/change-requests/CR-2026-031-regelquellen-ausserhalb.md +182 -0
  231. package/.koolie/core/governance/change-requests/CR-2026-032-fremde-skill-ablage.md +151 -0
  232. package/.koolie/core/governance/change-requests/CR-2026-033-modusabhaengige-durchsetzung.md +131 -0
  233. package/.koolie/core/governance/change-requests/CR-2026-034-nachweisbedingungen.md +116 -0
  234. package/.koolie/core/governance/change-requests/CR-2026-035-readme-in-der-regelablage.md +115 -0
  235. package/.koolie/core/governance/change-requests/CR-2026-036-ortsangaben-hook-konfiguration.md +108 -0
  236. package/.koolie/core/governance/change-requests/CR-2026-037-meldender-hook-clientgebunden.md +133 -0
  237. package/.koolie/core/governance/change-requests/CR-2026-038-importsteuerung.md +159 -0
  238. package/.koolie/core/governance/change-requests/CR-2026-039-normative-saetze-in-kommentaren.md +124 -0
  239. package/.koolie/core/governance/change-requests/CR-2026-040-erh01-ist-clientgebunden.md +115 -0
  240. package/.koolie/core/governance/change-requests/CR-2026-041-s5-nicht-abbildbar.md +128 -0
  241. package/.koolie/core/governance/change-requests/CR-2026-042-abwesenheitsnachweis-suchwerkzeug.md +102 -0
  242. package/.koolie/core/governance/change-requests/CR-2026-043-validator-gibt-trefferwerte-aus.md +135 -0
  243. package/.koolie/core/governance/change-requests/CR-2026-044-aktivierungspruefung-clientgebunden.md +112 -0
  244. package/.koolie/core/governance/change-requests/CR-2026-045-update-verliert-die-clientwahl.md +116 -0
  245. package/.koolie/core/governance/change-requests/CR-2026-046-erstinstallation-ueberschreibt-projektdatei.md +125 -0
  246. package/.koolie/core/governance/change-requests/CR-2026-047-zusagen-je-zugriffskanal.md +133 -0
  247. package/.koolie/core/governance/change-requests/CR-2026-048-modusgrenze-ohne-durchsetzung.md +137 -0
  248. package/.koolie/core/governance/change-requests/CR-2026-049-sondenlauf-kodierungsabhaengig.md +126 -0
  249. package/.koolie/core/governance/change-requests/CR-2026-050-allowed-tools-und-verworfene-permissions.md +110 -0
  250. package/.koolie/core/governance/change-requests/CR-2026-051-quellenkarte-und-ueberholter-stand.md +110 -0
  251. package/.koolie/core/governance/change-requests/CR-2026-052-drei-regelkonflikte.md +166 -0
  252. package/.koolie/core/governance/change-requests/CR-2026-053-lesesperre-und-entwicklungsprofil.md +144 -0
  253. package/.koolie/core/governance/change-requests/CR-2026-054-aktivierung-verlangt-aktivitaet.md +124 -0
  254. package/.koolie/core/governance/change-requests/CR-2026-055-domain-ausnahme-ohne-mechanismus.md +173 -0
  255. package/.koolie/core/governance/change-requests/CR-2026-056-eingabeschema-und-pfadidentitaet.md +245 -0
  256. package/.koolie/core/governance/change-requests/CR-2026-057-disallowed-tools-und-s3.md +148 -0
  257. package/.koolie/core/governance/change-requests/CR-2026-058-unteragent-reichweite.md +203 -0
  258. package/.koolie/core/governance/change-requests/CR-2026-059-unteragent-tiefe-und-widerspruch.md +125 -0
  259. package/.koolie/core/governance/change-requests/CR-2026-060-stumme-brueche.md +170 -0
  260. package/.koolie/core/governance/change-requests/CR-2026-061-berechtigungsdatei-ohne-pruefung.md +169 -0
  261. package/.koolie/core/governance/change-requests/CR-2026-062-werkzeugabbildung-des-frontmatters.md +178 -0
  262. package/.koolie/core/governance/change-requests/CR-2026-063-skillaufruf-ohne-freigabe.md +207 -0
  263. package/.koolie/core/governance/change-requests/CR-2026-064-pruefregister-nicht-nachgezaehlt.md +141 -0
  264. package/.koolie/core/governance/change-requests/CR-2026-065-devin-suchwerkzeuge-erhoben.md +170 -0
  265. package/.koolie/core/governance/change-requests/CR-2026-066-schlitzdeckung-ohne-abgleich.md +153 -0
  266. package/.koolie/core/governance/change-requests/CR-2026-067-hookblock-und-praeparationsregister.md +140 -0
  267. package/.koolie/core/governance/change-requests/CR-2026-068-sondenlauf-nebenlaeufig.md +106 -0
  268. package/.koolie/core/governance/change-requests/CR-2026-069-bytecode-des-kerns.md +108 -0
  269. package/.koolie/core/governance/change-requests/CR-2026-070-d11-zaehler.md +114 -0
  270. package/.koolie/core/governance/change-requests/CR-2026-071-strukturentscheidungen-bestaetigen.md +322 -0
  271. package/.koolie/core/governance/change-requests/CR-2026-072-modulstatus-heben.md +315 -0
  272. package/.koolie/core/governance/change-requests/CR-2026-073-nicht-skill-traeger-heben.md +246 -0
  273. package/.koolie/core/governance/change-requests/CR-2026-074-restliche-nicht-skill-traeger-heben.md +271 -0
  274. package/.koolie/core/governance/change-requests/CR-2026-075-ap2-zielversion-devin-desktop.md +335 -0
  275. package/.koolie/core/governance/change-requests/CR-2026-076-erster-sitzungstest.md +455 -0
  276. package/.koolie/core/governance/change-requests/CR-2026-077-sitzungstest-schranken.md +425 -0
  277. package/.koolie/core/governance/change-requests/CR-2026-078-planung-nach-1-0-0.md +294 -0
  278. package/.koolie/core/governance/change-requests/CR-2026-079-umbenennung-vorziehen.md +233 -0
  279. package/.koolie/core/governance/change-requests/CR-2026-080-clientbindung-des-kerns.md +321 -0
  280. package/.koolie/core/governance/change-requests/CR-2026-081-produktnamen-im-kern.md +297 -0
  281. package/.koolie/core/governance/change-requests/CR-2026-082-sitzungstest-pi-ds-2.md +145 -0
  282. package/.koolie/core/governance/change-requests/CR-2026-083-sitzungstest-ne-sc.md +300 -0
  283. package/.koolie/core/governance/change-requests/CR-2026-084-trockenlauf-gegen-den-committeten-stand.md +117 -0
  284. package/.koolie/core/governance/change-requests/CR-2026-085-vorbedingungen-sitzungstest-5.md +182 -0
  285. package/.koolie/core/governance/change-requests/CR-2026-086-grenzfaelle-gegen-die-fassungen.md +164 -0
  286. package/.koolie/core/governance/change-requests/CR-2026-087-produktbeobachtung-quellenliste.md +206 -0
  287. package/.koolie/core/governance/change-requests/CR-2026-088-vorbedingungen-testblaetter.md +127 -0
  288. package/.koolie/core/governance/change-requests/CR-2026-089-herrichtung-uebungsrepositorium.md +226 -0
  289. package/.koolie/core/governance/change-requests/CR-2026-090-vorbedingungen-sitzungstest-5-zweiter-durchgang.md +255 -0
  290. package/.koolie/core/governance/change-requests/CR-2026-091-sitzungstest-5.md +163 -0
  291. package/.koolie/core/governance/change-requests/CR-2026-092-pruefmittelwort-und-buendelschnitt.md +226 -0
  292. package/.koolie/core/governance/change-requests/CR-2026-093-sechzehnte-praeparation.md +151 -0
  293. package/.koolie/core/governance/change-requests/CR-2026-094-testblaetter-buendel-1.md +113 -0
  294. package/.koolie/core/governance/change-requests/CR-2026-095-pruefapparat-filter.md +65 -0
  295. package/.koolie/core/governance/change-requests/CR-2026-096-vorbedingungen-buendel-2.md +225 -0
  296. package/.koolie/core/governance/change-requests/CR-2026-097-testblaetter-buendel-2.md +162 -0
  297. package/.koolie/core/governance/change-requests/CR-2026-098-anforderungen-auslieferung.md +93 -0
  298. package/.koolie/core/governance/change-requests/CR-2026-099-k74-und-vorbedingungen-buendel-3.md +119 -0
  299. package/.koolie/core/governance/change-requests/CR-2026-100-testblaetter-buendel-3.md +120 -0
  300. package/.koolie/core/governance/change-requests/CR-2026-101-k77-eigener-posten.md +165 -0
  301. package/.koolie/core/governance/change-requests/CR-2026-102-k77-entschieden.md +118 -0
  302. package/.koolie/core/governance/change-requests/CR-2026-103-vorbedingungen-buendel-4.md +76 -0
  303. package/.koolie/core/governance/change-requests/CR-2026-104-herrichtung-buendel-4.md +82 -0
  304. package/.koolie/core/governance/change-requests/CR-2026-105-messapparat-buendel-4.md +227 -0
  305. package/.koolie/core/governance/change-requests/CR-2026-106-uebergabe-einchecken.md +91 -0
  306. package/.koolie/core/governance/change-requests/CR-2026-107-uebergabe-im-release-commit.md +111 -0
  307. package/.koolie/core/governance/change-requests/CR-2026-108-testblaetter-buendel-4.md +118 -0
  308. package/.koolie/core/governance/change-requests/CR-2026-109-berichtsweg-des-aufraeumers.md +108 -0
  309. package/.koolie/core/governance/change-requests/CR-2026-110-vorbedingungen-des-nachlaufs.md +184 -0
  310. package/.koolie/core/governance/change-requests/CR-2026-111-der-apparat-auf-dem-weg-der-wiederaufnahme.md +127 -0
  311. package/.koolie/core/governance/change-requests/CR-2026-112-der-arbeitsplatz-im-kern.md +103 -0
  312. package/.koolie/core/governance/change-requests/CR-2026-113-nachlauf-buendel-4.md +103 -0
  313. package/.koolie/core/governance/change-requests/CR-2026-114-vorbedingungen-buendel-5.md +317 -0
  314. package/.koolie/core/governance/change-requests/CR-2026-115-herrichtung-buendel-5.md +244 -0
  315. package/.koolie/core/governance/change-requests/CR-2026-116-messtag-buendel-5.md +178 -0
  316. package/.koolie/core/governance/change-requests/CR-2026-117-sammelzellen-zentraler-katalog.md +251 -0
  317. package/.koolie/core/governance/change-requests/CR-2026-118-quellenzuordnung-matrixzeilen.md +115 -0
  318. package/.koolie/core/governance/change-requests/CR-2026-119-umbenennung-koolie.md +204 -0
  319. package/.koolie/core/governance/change-requests/CR-2026-120-ap2-rest-devin-desktop.md +96 -0
  320. package/.koolie/core/governance/change-requests/CR-2026-121-verify-marker-abschaffen.md +185 -0
  321. package/.koolie/core/governance/change-requests/CR-2026-122-umbenennung-koolie-lauf.md +131 -0
  322. package/.koolie/core/governance/change-requests/CR-2026-123-vortrag-und-namensabsatz.md +170 -0
  323. package/.koolie/core/governance/change-requests/CR-2026-124-hauptdokument-ap11.md +237 -0
  324. package/.koolie/core/governance/change-requests/CR-2026-125-word-fassung-und-blinder-fleck.md +204 -0
  325. package/.koolie/core/governance/change-requests/CR-2026-126-lizenz-gpl3.md +112 -0
  326. package/.koolie/core/governance/change-requests/CR-2026-127-gegenzeichnung-rollenfrage.md +96 -0
  327. package/.koolie/core/governance/change-requests/CR-2026-128-freigabelauf-1.0.0.md +278 -0
  328. package/.koolie/core/governance/change-requests/CR-2026-129-archiv-zeilenenden.md +90 -0
  329. package/.koolie/core/governance/change-requests/CR-2026-130-reihenfolge-des-hebens.md +204 -0
  330. package/.koolie/core/governance/change-requests/CR-2026-131-chronik-und-vorlage.md +194 -0
  331. package/.koolie/core/governance/change-requests/CR-2026-132-erhebung-openai-codex.md +185 -0
  332. package/.koolie/core/governance/change-requests/CR-2026-133-bau-openai-codex.md +97 -0
  333. package/.koolie/core/governance/change-requests/CR-2026-134-uebergabe-lokal.md +117 -0
  334. package/.koolie/core/governance/change-requests/CR-2026-135-pfadlisten-nul-getrennt.md +139 -0
  335. package/.koolie/core/governance/change-requests/CR-2026-136-overlay-werte-einordnung.md +156 -0
  336. package/.koolie/core/governance/change-requests/CR-2026-137-kopierweg-kern.md +144 -0
  337. package/.koolie/core/governance/change-requests/CR-2026-138-overlay-muster-general.md +118 -0
  338. package/.koolie/core/governance/change-requests/CR-2026-139-overlay-muster-dokumente.md +105 -0
  339. package/.koolie/core/governance/change-requests/CR-2026-140-installer-je-zielsystem.md +120 -0
  340. package/.koolie/core/governance/change-requests/CR-2026-141-lieferumfang.md +123 -0
  341. package/.koolie/core/governance/change-requests/CR-2026-142-dokumentationsstandard.md +90 -0
  342. package/.koolie/core/governance/change-requests/CR-2026-143-klasse-b-core-laufzeit.md +89 -0
  343. package/.koolie/core/governance/change-requests/CR-2026-144-klasse-b-governance.md +90 -0
  344. package/.koolie/core/governance/change-requests/CR-2026-145-klasse-b-skills.md +81 -0
  345. package/.koolie/core/governance/change-requests/CR-2026-146-code-pack-posten.md +84 -0
  346. package/.koolie/core/governance/change-requests/CR-2026-147-regel-register-posten.md +78 -0
  347. package/.koolie/core/governance/change-requests/CR-2026-148-mehrprojekt-tokenlast.md +70 -0
  348. package/.koolie/core/governance/change-requests/CR-2026-149-regelablage-pfadtoken.md +71 -0
  349. package/.koolie/core/governance/change-requests/CR-2026-150-client-pack-kiro.md +76 -0
  350. package/.koolie/core/governance/change-requests/CR-2026-151-skill-anweisungen.md +71 -0
  351. package/.koolie/core/governance/change-requests/CR-2026-152-testblaetter-modellwechsel.md +78 -0
  352. package/.koolie/core/governance/change-requests/CR-2026-153-attributionszeile.md +88 -0
  353. package/.koolie/core/governance/change-requests/CR-2026-154-auffindbarkeit.md +102 -0
  354. package/.koolie/core/governance/change-requests/CR-2026-155-client-pack-cursor.md +80 -0
  355. package/.koolie/core/governance/change-requests/CR-2026-156-mandat-und-reibung.md +100 -0
  356. package/.koolie/core/governance/change-requests/CR-2026-157-mcp-anbindung.md +93 -0
  357. package/.koolie/core/governance/change-requests/CR-2026-158-registerpflege.md +69 -0
  358. package/.koolie/core/governance/change-requests/CR-2026-159-powershell.md +49 -0
  359. package/.koolie/core/governance/change-requests/CR-2026-160-messapparat.md +59 -0
  360. package/.koolie/core/governance/change-requests/CR-2026-161-pruefwerkzeuge.md +52 -0
  361. package/.koolie/core/governance/change-requests/CR-2026-162-schutzschicht.md +65 -0
  362. package/.koolie/core/governance/change-requests/CR-2026-163-pfadsemantik.md +61 -0
  363. package/.koolie/core/governance/change-requests/CR-2026-164-modi-ausnahmen.md +65 -0
  364. package/.koolie/core/governance/change-requests/CR-2026-165-installer-banner.md +406 -0
  365. package/.koolie/core/governance/change-requests/CR-2026-166-nachlauf-aufzeichnungen.md +59 -0
  366. package/.koolie/core/governance/change-requests/CR-2026-167-einsatzarchitektur.md +60 -0
  367. package/.koolie/core/governance/change-requests/CR-2026-168-paketquellen.md +64 -0
  368. package/.koolie/core/governance/change-requests/CR-2026-169-modusbindung-messfragen.md +58 -0
  369. package/.koolie/core/governance/change-requests/CR-2026-170-erste-veroeffentlichung.md +62 -0
  370. package/.koolie/core/governance/change-requests/CR-2026-171-befehl-im-projektverzeichnis.md +57 -0
  371. package/.koolie/core/governance/change-requests/CR-2026-172-auftritt-npm-suche.md +58 -0
  372. package/.koolie/core/install.py +2402 -0
  373. package/.koolie/core/install_dialog.py +227 -0
  374. package/.koolie/core/koexistenz.py +112 -0
  375. package/.koolie/core/mandat.py +605 -0
  376. package/.koolie/core/onboarding/COMPLETION_CRITERIA.md +37 -0
  377. package/.koolie/core/onboarding/GUIDE.md +103 -0
  378. package/.koolie/core/onboarding/KNOWLEDGE_CHECK.md +48 -0
  379. package/.koolie/core/onboarding/MENTOR_CHECKLIST.md +40 -0
  380. package/.koolie/core/onboarding/QUICKSTART.md +50 -0
  381. package/.koolie/core/onboarding/REFERENCE.md +69 -0
  382. package/.koolie/core/onboarding/exercises/EXERCISES.md +78 -0
  383. package/.koolie/core/onboarding/exercises/README.md +120 -0
  384. package/.koolie/core/pilot/METRICS.md +59 -0
  385. package/.koolie/core/pilot/PILOT_CONCEPT.md +42 -0
  386. package/.koolie/core/prompts/01-understand-codebase.md +99 -0
  387. package/.koolie/core/prompts/02-impact-analysis.md +104 -0
  388. package/.koolie/core/prompts/03-implementation-planning.md +102 -0
  389. package/.koolie/core/prompts/04-code-generation.md +100 -0
  390. package/.koolie/core/prompts/05-test-generation.md +103 -0
  391. package/.koolie/core/prompts/06-refactoring.md +102 -0
  392. package/.koolie/core/prompts/07-debugging.md +97 -0
  393. package/.koolie/core/prompts/08-security-review.md +92 -0
  394. package/.koolie/core/prompts/09-performance-analysis.md +89 -0
  395. package/.koolie/core/prompts/10-documentation.md +91 -0
  396. package/.koolie/core/prompts/11-merge-request-review.md +94 -0
  397. package/.koolie/core/prompts/12-developer-training.md +90 -0
  398. package/.koolie/core/prompts/README.md +88 -0
  399. package/.koolie/core/templates/MR_AI_DISCLOSURE.md +37 -0
  400. package/.koolie/core/templates/PLAN_TEMPLATE.md +57 -0
  401. package/.koolie/core/templates/SKILL_TEMPLATE.md +159 -0
  402. package/.koolie/core/templates/project-overlay/OVERLAY.md +315 -0
  403. package/.koolie/core/templates/project-overlay/documents/README.md +43 -0
  404. package/.koolie/core/templates/project-overlay/documents/ai-governance/.gitkeep.md +3 -0
  405. package/.koolie/core/templates/project-overlay/documents/ai-process-model/.gitkeep.md +3 -0
  406. package/.koolie/core/templates/project-overlay/documents/architecture/.gitkeep.md +3 -0
  407. package/.koolie/core/templates/project-overlay/documents/architecture/decisions/README.md +3 -0
  408. package/.koolie/core/templates/project-overlay/documents/branching-strategy/.gitkeep.md +3 -0
  409. package/.koolie/core/templates/project-overlay/documents/coding-guidelines/.gitkeep.md +3 -0
  410. package/.koolie/core/templates/project-overlay/documents/definition-of-done/.gitkeep.md +3 -0
  411. package/.koolie/core/templates/project-overlay/documents/definition-of-ready/.gitkeep.md +3 -0
  412. package/.koolie/core/templates/project-overlay/documents/deployment/.gitkeep.md +3 -0
  413. package/.koolie/core/templates/project-overlay/documents/glossary/.gitkeep.md +3 -0
  414. package/.koolie/core/templates/project-overlay/documents/quality/.gitkeep.md +3 -0
  415. package/.koolie/core/templates/project-overlay/documents/roadmap/.gitkeep.md +3 -0
  416. package/.koolie/core/templates/project-overlay/documents/roles/.gitkeep.md +3 -0
  417. package/.koolie/core/templates/project-overlay/documents/security/.gitkeep.md +3 -0
  418. package/.koolie/core/templates/project-overlay/exceptions/EXCEPTIONS.md +9 -0
  419. package/.koolie/core/templates/project-overlay/forbidden-terms.txt +8 -0
  420. package/.koolie/core/templates/project-overlay/overlay-manifest.yaml +73 -0
  421. package/.koolie/core/templates/rules/21-overlay-TEMPLATE.md.template +28 -0
  422. package/.koolie/core/templates/rules/40-tech-TEMPLATE.md.template +33 -0
  423. package/.koolie/core/tests/EDGE_CASES.md +67 -0
  424. package/.koolie/core/tests/TEST_CATALOG.md +170 -0
  425. package/.koolie/core/tests/erhebungen/README.md +326 -0
  426. package/.koolie/core/tests/erhebungen/ablage.py +357 -0
  427. package/.koolie/core/tests/erhebungen/apparat/__init__.py +22 -0
  428. package/.koolie/core/tests/erhebungen/apparat/baum.py +214 -0
  429. package/.koolie/core/tests/erhebungen/apparat/belege.py +91 -0
  430. package/.koolie/core/tests/erhebungen/apparat/clients.py +321 -0
  431. package/.koolie/core/tests/erhebungen/apparat/freigabe.py +74 -0
  432. package/.koolie/core/tests/erhebungen/apparat/kontingent.py +64 -0
  433. package/.koolie/core/tests/erhebungen/apparat/laeufer.py +155 -0
  434. package/.koolie/core/tests/erhebungen/apparat/reihe.py +202 -0
  435. package/.koolie/core/tests/erhebungen/apparat/selbsttest.py +280 -0
  436. package/.koolie/core/tests/erhebungen/apparat/stand.py +30 -0
  437. package/.koolie/core/tests/erhebungen/apparat/vorpruefung.py +70 -0
  438. package/.koolie/core/tests/erhebungen/auswerten-b4.py +468 -0
  439. package/.koolie/core/tests/erhebungen/auswerten-b5.py +517 -0
  440. package/.koolie/core/tests/erhebungen/auswerten-dd.py +172 -0
  441. package/.koolie/core/tests/erhebungen/baeume-b4.py +334 -0
  442. package/.koolie/core/tests/erhebungen/baeume-b5.py +339 -0
  443. package/.koolie/core/tests/erhebungen/baeume_loeschen.py +138 -0
  444. package/.koolie/core/tests/erhebungen/cc-overlay-fuellen.py +277 -0
  445. package/.koolie/core/tests/erhebungen/dossier-b4.py +178 -0
  446. package/.koolie/core/tests/erhebungen/dossier-b5.py +202 -0
  447. package/.koolie/core/tests/erhebungen/historie-bauen-b4.py +642 -0
  448. package/.koolie/core/tests/erhebungen/k-bauen-b3.py +841 -0
  449. package/.koolie/core/tests/erhebungen/lauf-dd.py +146 -0
  450. package/.koolie/core/tests/erhebungen/lauf.py +114 -0
  451. package/.koolie/core/tests/erhebungen/mcp-waechter.py +278 -0
  452. package/.koolie/core/tests/erhebungen/messbaum-schnitt.py +256 -0
  453. package/.koolie/core/tests/erhebungen/messen.py +72 -0
  454. package/.koolie/core/tests/erhebungen/node-waechter.py +74 -0
  455. package/.koolie/core/tests/erhebungen/packaktivierung.py +403 -0
  456. package/.koolie/core/tests/erhebungen/prompts-schreiben-b4.py +210 -0
  457. package/.koolie/core/tests/erhebungen/prompts-schreiben-b5.py +251 -0
  458. package/.koolie/core/tests/erhebungen/reihe-b4.py +171 -0
  459. package/.koolie/core/tests/erhebungen/reihe-b5.py +172 -0
  460. package/.koolie/core/tests/erhebungen/stand-b4.py +135 -0
  461. package/.koolie/core/tests/erhebungen/stand-b5.py +137 -0
  462. package/.koolie/core/tests/erhebungen/trust-b4.py +56 -0
  463. package/.koolie/core/tests/erhebungen/trust-b5.py +56 -0
  464. package/.koolie/core/tests/erhebungen/turn2-schreiben-b4.py +105 -0
  465. package/.koolie/core/tests/erhebungen/umgebungen-bauen-b4.py +377 -0
  466. package/.koolie/core/tests/erhebungen/umgebungen-bauen-b5.py +363 -0
  467. package/.koolie/core/tests/erhebungen/zaehlen46.py +74 -0
  468. package/.koolie/core/tests/erhebungen/zustand-b4.py +82 -0
  469. package/.koolie/core/tests/erhebungen/zustand-b5.py +82 -0
  470. package/.koolie/core/tests/protocols/2026-09-10-AP2-claude-code-wirkungsnachweise.md +194 -0
  471. package/.koolie/core/tests/protocols/2026-09-10-AP2-claude-code.md +468 -0
  472. package/.koolie/core/tests/protocols/2026-09-10-CR-2026-020-akteursbezeichnung.md +99 -0
  473. package/.koolie/core/tests/protocols/2026-09-10-CR-2026-021-hook-interpreter.md +138 -0
  474. package/.koolie/core/tests/protocols/2026-09-10-CR-2026-022-artefaktversionen.md +87 -0
  475. package/.koolie/core/tests/protocols/2026-09-10-CR-2026-023-shell-lesesperre.md +135 -0
  476. package/.koolie/core/tests/protocols/2026-09-10-CR-2026-024-clientbindungen.md +98 -0
  477. package/.koolie/core/tests/protocols/2026-09-10-FW-DS-03.md +90 -0
  478. package/.koolie/core/tests/protocols/2026-09-10-FW-KO-01.md +105 -0
  479. package/.koolie/core/tests/protocols/2026-09-10-FW-KO-02.md +123 -0
  480. package/.koolie/core/tests/protocols/2026-09-10-FW-KO-04.md +73 -0
  481. package/.koolie/core/tests/protocols/2026-09-10-FW-RE-02.md +99 -0
  482. package/.koolie/core/tests/protocols/2026-09-10-FW-VN-01-wiederholung.md +108 -0
  483. package/.koolie/core/tests/protocols/2026-09-10-FW-VN-01.md +249 -0
  484. package/.koolie/core/tests/protocols/2026-09-10-FW-ZA-05.md +99 -0
  485. package/.koolie/core/tests/protocols/2026-09-11-AP2-devin-desktop.md +257 -0
  486. package/.koolie/core/tests/protocols/2026-09-11-CR-2026-026-fail-closed.md +113 -0
  487. package/.koolie/core/tests/protocols/2026-09-11-erhebungen-K21-K26.md +243 -0
  488. package/.koolie/core/tests/protocols/2026-09-11-wirkungsnachweise-0.26.0.md +101 -0
  489. package/.koolie/core/tests/protocols/2026-09-12-B01-allowed-tools.md +152 -0
  490. package/.koolie/core/tests/protocols/2026-09-12-B04-B05-gegenpruefung.md +204 -0
  491. package/.koolie/core/tests/protocols/2026-09-12-erhebungen-K28-S5-B9-bypass.md +268 -0
  492. package/.koolie/core/tests/protocols/2026-09-12-mehrprojekt-arbeitsbereich.md +154 -0
  493. package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.26.1.md +126 -0
  494. package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.27.0.md +114 -0
  495. package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.28.0.md +129 -0
  496. package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.29.0.md +121 -0
  497. package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.30.0.md +112 -0
  498. package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.31.0.md +107 -0
  499. package/.koolie/core/tests/protocols/2026-09-13-B06-gegenpruefung.md +370 -0
  500. package/.koolie/core/tests/protocols/2026-09-13-B07-B09-gegenpruefung.md +211 -0
  501. package/.koolie/core/tests/protocols/2026-09-13-B08-B11-gegenpruefung.md +179 -0
  502. package/.koolie/core/tests/protocols/2026-09-13-erhebung-disallowed-tools.md +147 -0
  503. package/.koolie/core/tests/protocols/2026-09-13-erhebung-unteragent-tiefe.md +139 -0
  504. package/.koolie/core/tests/protocols/2026-09-13-erhebung-unteragent.md +214 -0
  505. package/.koolie/core/tests/protocols/2026-09-13-gegenpruefung-berechtigungsdatei.md +253 -0
  506. package/.koolie/core/tests/protocols/2026-09-13-gegenpruefung-stumme-brueche.md +202 -0
  507. package/.koolie/core/tests/protocols/2026-09-13-gegenpruefung-werkzeugabbildung.md +219 -0
  508. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.32.0.md +133 -0
  509. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.33.0.md +169 -0
  510. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.34.0.md +187 -0
  511. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.35.0.md +187 -0
  512. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.36.0.md +137 -0
  513. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.37.0.md +112 -0
  514. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.38.0.md +154 -0
  515. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.39.0.md +188 -0
  516. package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.40.0.md +214 -0
  517. package/.koolie/core/tests/protocols/2026-09-14-erhebung-devin-werkzeuge.md +267 -0
  518. package/.koolie/core/tests/protocols/2026-09-14-erhebung-skillaufruf.md +238 -0
  519. package/.koolie/core/tests/protocols/2026-09-14-gegenpruefung-pruefregister.md +156 -0
  520. package/.koolie/core/tests/protocols/2026-09-14-gegenpruefung-schlitzdeckung.md +206 -0
  521. package/.koolie/core/tests/protocols/2026-09-14-gegenpruefung-skillwahl.md +127 -0
  522. package/.koolie/core/tests/protocols/2026-09-14-migrationslauf-pilot.md +134 -0
  523. package/.koolie/core/tests/protocols/2026-09-14-wirkungsnachweise-0.41.0.md +175 -0
  524. package/.koolie/core/tests/protocols/2026-09-14-wirkungsnachweise-0.42.0.md +180 -0
  525. package/.koolie/core/tests/protocols/2026-09-14-wirkungsnachweise-0.43.0.md +165 -0
  526. package/.koolie/core/tests/protocols/2026-09-14-wirkungsnachweise-0.44.0.md +130 -0
  527. package/.koolie/core/tests/protocols/2026-09-15-gegenpruefung-d11-zaehlregeln.md +311 -0
  528. package/.koolie/core/tests/protocols/2026-09-15-gegenpruefung-modulstatus.md +524 -0
  529. package/.koolie/core/tests/protocols/2026-09-15-gegenpruefung-nicht-skill-traeger.md +225 -0
  530. package/.koolie/core/tests/protocols/2026-09-15-gegenpruefung-restliche-nicht-skill-traeger.md +345 -0
  531. package/.koolie/core/tests/protocols/2026-09-15-gegenpruefung-strukturentscheidungen.md +392 -0
  532. package/.koolie/core/tests/protocols/2026-09-15-herrichtung-uebungsrepositorium.md +213 -0
  533. package/.koolie/core/tests/protocols/2026-09-15-migrationslauf-pilot-0.46.0.md +143 -0
  534. package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.45.0.md +127 -0
  535. package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.46.0.md +193 -0
  536. package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.47.0.md +149 -0
  537. package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.49.0.md +202 -0
  538. package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.50.0.md +183 -0
  539. package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.51.0.md +202 -0
  540. package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.52.0.md +168 -0
  541. package/.koolie/core/tests/protocols/2026-09-16-AP2-zielversion-devin-desktop.md +231 -0
  542. package/.koolie/core/tests/protocols/2026-09-16-wirkungsnachweise-0.53.0.md +350 -0
  543. package/.koolie/core/tests/protocols/2026-09-17-nachtrag-migrationshinweis-0.54.1.md +121 -0
  544. package/.koolie/core/tests/protocols/2026-09-17-sitzungstest-pi-ds.md +523 -0
  545. package/.koolie/core/tests/protocols/2026-09-17-sitzungstest-schranken.md +433 -0
  546. package/.koolie/core/tests/protocols/2026-09-17-wirkungsnachweise-0.54.0.md +159 -0
  547. package/.koolie/core/tests/protocols/2026-09-18-FW-AK-01.md +442 -0
  548. package/.koolie/core/tests/protocols/2026-09-18-FW-KO-05.md +231 -0
  549. package/.koolie/core/tests/protocols/2026-09-18-herrichtung-uebungsrepositorium.md +273 -0
  550. package/.koolie/core/tests/protocols/2026-09-18-nachtrag-preis-umbenennung-0.56.1.md +102 -0
  551. package/.koolie/core/tests/protocols/2026-09-18-sitzungstest-5.md +349 -0
  552. package/.koolie/core/tests/protocols/2026-09-18-sitzungstest-ne-sc.md +430 -0
  553. package/.koolie/core/tests/protocols/2026-09-18-sitzungstest-pi-ds-2.md +499 -0
  554. package/.koolie/core/tests/protocols/2026-09-18-vorbedingungen-sitzungstest-5-zweiter-durchgang.md +170 -0
  555. package/.koolie/core/tests/protocols/2026-09-18-vorbedingungen-testblaetter.md +184 -0
  556. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.55.0.md +202 -0
  557. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.56.0.md +135 -0
  558. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.56.2.md +154 -0
  559. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.57.0.md +228 -0
  560. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.57.1.md +262 -0
  561. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.58.0.md +135 -0
  562. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.59.0.md +150 -0
  563. package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.60.0.md +340 -0
  564. package/.koolie/core/tests/protocols/2026-09-19-herrichtung-buendel-4.md +235 -0
  565. package/.koolie/core/tests/protocols/2026-09-19-k77-zurechenbarkeit.md +236 -0
  566. package/.koolie/core/tests/protocols/2026-09-19-pruefapparat-filter.md +50 -0
  567. package/.koolie/core/tests/protocols/2026-09-19-pruefmittelwort-und-buendelschnitt.md +239 -0
  568. package/.koolie/core/tests/protocols/2026-09-19-sechzehnte-praeparation.md +135 -0
  569. package/.koolie/core/tests/protocols/2026-09-19-testblaetter-buendel-1.md +250 -0
  570. package/.koolie/core/tests/protocols/2026-09-19-testblaetter-buendel-2.md +229 -0
  571. package/.koolie/core/tests/protocols/2026-09-19-testblaetter-buendel-3.md +293 -0
  572. package/.koolie/core/tests/protocols/2026-09-19-vorbedingungen-buendel-2.md +236 -0
  573. package/.koolie/core/tests/protocols/2026-09-19-vorbedingungen-buendel-3.md +253 -0
  574. package/.koolie/core/tests/protocols/2026-09-19-vorbedingungen-buendel-4.md +138 -0
  575. package/.koolie/core/tests/protocols/2026-09-20-messapparat-buendel-4.md +433 -0
  576. package/.koolie/core/tests/protocols/2026-09-20-testblaetter-buendel-4.md +321 -0
  577. package/.koolie/core/tests/protocols/2026-09-20-uebergabe-im-release-commit.md +146 -0
  578. package/.koolie/core/tests/protocols/2026-09-20-vorbedingungen-nachlauf-b4.md +259 -0
  579. package/.koolie/core/tests/protocols/2026-09-21-arbeitsplatz-im-kern.md +127 -0
  580. package/.koolie/core/tests/protocols/2026-09-21-nachlauf-buendel-4.md +157 -0
  581. package/.koolie/core/tests/protocols/2026-09-21-vorbedingungen-buendel-5.md +247 -0
  582. package/.koolie/core/tests/protocols/2026-09-21-wiederaufnahme-nachlauf-b4.md +190 -0
  583. package/.koolie/core/tests/protocols/2026-09-22-ap2-rest-devin-desktop.md +614 -0
  584. package/.koolie/core/tests/protocols/2026-09-22-hauptdokument-ap11.md +443 -0
  585. package/.koolie/core/tests/protocols/2026-09-22-herrichtung-buendel-5.md +224 -0
  586. package/.koolie/core/tests/protocols/2026-09-22-messtag-buendel-5.md +327 -0
  587. package/.koolie/core/tests/protocols/2026-09-22-quellenzuordnung-matrixzeilen.md +230 -0
  588. package/.koolie/core/tests/protocols/2026-09-22-sammelzellen-zentraler-katalog.md +354 -0
  589. package/.koolie/core/tests/protocols/2026-09-22-umbenennung-koolie.md +296 -0
  590. package/.koolie/core/tests/protocols/2026-09-22-verify-marker-abschaffen.md +283 -0
  591. package/.koolie/core/tests/protocols/2026-09-22-vortrag-und-name.md +261 -0
  592. package/.koolie/core/tests/protocols/2026-09-22-wirkungsnachweise-0.86.0.md +158 -0
  593. package/.koolie/core/tests/protocols/2026-09-23-archiv-zeilenenden.md +113 -0
  594. package/.koolie/core/tests/protocols/2026-09-23-bau-openai-codex.md +168 -0
  595. package/.koolie/core/tests/protocols/2026-09-23-chronik-und-vorlage.md +224 -0
  596. package/.koolie/core/tests/protocols/2026-09-23-erhebung-openai-codex.md +309 -0
  597. package/.koolie/core/tests/protocols/2026-09-23-freigabelauf-1.0.0-vorbereitung.md +119 -0
  598. package/.koolie/core/tests/protocols/2026-09-23-freigabelauf-1.0.0.md +150 -0
  599. package/.koolie/core/tests/protocols/2026-09-23-gegenzeichnung-rollenfrage.md +198 -0
  600. package/.koolie/core/tests/protocols/2026-09-23-reihenfolge-des-hebens.md +220 -0
  601. package/.koolie/core/tests/protocols/2026-09-23-word-fassung-und-blinder-fleck.md +307 -0
  602. package/.koolie/core/tests/protocols/2026-09-24-kopierweg-kern.md +98 -0
  603. package/.koolie/core/tests/protocols/2026-09-24-overlay-werte-einordnung.md +111 -0
  604. package/.koolie/core/tests/protocols/2026-09-24-pfadlisten-nul-getrennt.md +128 -0
  605. package/.koolie/core/tests/protocols/2026-09-24-uebergabe-lokal.md +85 -0
  606. package/.koolie/core/tests/protocols/2026-09-25-code-pack-posten.md +86 -0
  607. package/.koolie/core/tests/protocols/2026-09-25-dokumentationsstandard.md +101 -0
  608. package/.koolie/core/tests/protocols/2026-09-25-installer-je-zielsystem.md +134 -0
  609. package/.koolie/core/tests/protocols/2026-09-25-klasse-b-core-laufzeit.md +126 -0
  610. package/.koolie/core/tests/protocols/2026-09-25-klasse-b-governance.md +133 -0
  611. package/.koolie/core/tests/protocols/2026-09-25-klasse-b-skills.md +91 -0
  612. package/.koolie/core/tests/protocols/2026-09-25-lieferumfang.md +76 -0
  613. package/.koolie/core/tests/protocols/2026-09-25-overlay-muster-dokumente.md +107 -0
  614. package/.koolie/core/tests/protocols/2026-09-25-overlay-muster-general.md +100 -0
  615. package/.koolie/core/tests/protocols/2026-09-25-regel-register-posten.md +87 -0
  616. package/.koolie/core/tests/protocols/2026-09-26-attributionszeile.md +83 -0
  617. package/.koolie/core/tests/protocols/2026-09-26-auffindbarkeit.md +85 -0
  618. package/.koolie/core/tests/protocols/2026-09-26-bau-cursor.md +68 -0
  619. package/.koolie/core/tests/protocols/2026-09-26-bau-kiro.md +75 -0
  620. package/.koolie/core/tests/protocols/2026-09-26-mehrprojekt-tokenlast.md +174 -0
  621. package/.koolie/core/tests/protocols/2026-09-26-regelablage-pfadtoken.md +133 -0
  622. package/.koolie/core/tests/protocols/2026-09-26-skill-anweisungen.md +111 -0
  623. package/.koolie/core/tests/protocols/2026-09-26-testblaetter-modellwechsel.md +106 -0
  624. package/.koolie/core/tests/protocols/2026-09-27-mandat-und-reibung.md +58 -0
  625. package/.koolie/core/tests/protocols/2026-09-28-mcp-anbindung.md +72 -0
  626. package/.koolie/core/tests/protocols/2026-09-29-messapparat.md +75 -0
  627. package/.koolie/core/tests/protocols/2026-09-29-powershell.md +58 -0
  628. package/.koolie/core/tests/protocols/2026-09-29-pruefwerkzeuge.md +64 -0
  629. package/.koolie/core/tests/protocols/2026-09-29-registerpflege.md +228 -0
  630. package/.koolie/core/tests/protocols/2026-09-29-schutzschicht.md +95 -0
  631. package/.koolie/core/tests/protocols/2026-09-30-einsatzarchitektur.md +104 -0
  632. package/.koolie/core/tests/protocols/2026-09-30-modi-ausnahmen.md +77 -0
  633. package/.koolie/core/tests/protocols/2026-09-30-nachlauf-banner.md +85 -0
  634. package/.koolie/core/tests/protocols/2026-09-30-paketquellen.md +65 -0
  635. package/.koolie/core/tests/protocols/2026-09-30-pfadsemantik.md +79 -0
  636. package/.koolie/core/tests/protocols/2026-10-01-auftritt-und-suche.md +58 -0
  637. package/.koolie/core/tests/protocols/2026-10-01-befehl-im-projektverzeichnis.md +47 -0
  638. package/.koolie/core/tests/protocols/2026-10-01-erste-veroeffentlichung.md +60 -0
  639. package/.koolie/core/tests/protocols/2026-10-01-modusbindung-messfragen.md +107 -0
  640. package/.koolie/core/tests/protocols/README.md +14 -0
  641. package/.koolie/core/tests/scripts/hook-check-secrets.py +1307 -0
  642. package/.koolie/core/tests/scripts/hook-overlay-status.py +120 -0
  643. package/.koolie/core/tests/scripts/mermaid_renderer.py +67 -0
  644. package/.koolie/core/tests/scripts/overlay_status.py +130 -0
  645. package/.koolie/core/tests/scripts/probe-pruefungen.py +110 -0
  646. package/.koolie/core/tests/scripts/pruefungen/__init__.py +4 -0
  647. package/.koolie/core/tests/scripts/pruefungen/berechtigungen.py +1559 -0
  648. package/.koolie/core/tests/scripts/pruefungen/bestand.py +1433 -0
  649. package/.koolie/core/tests/scripts/pruefungen/dokumente.py +1262 -0
  650. package/.koolie/core/tests/scripts/pruefungen/gemeinsam.py +784 -0
  651. package/.koolie/core/tests/scripts/pruefungen/hooks.py +1188 -0
  652. package/.koolie/core/tests/scripts/pruefungen/overlay.py +1251 -0
  653. package/.koolie/core/tests/scripts/pruefungen/packs.py +1314 -0
  654. package/.koolie/core/tests/scripts/pruefungen/register.py +950 -0
  655. package/.koolie/core/tests/scripts/pruefungen/testkatalog.py +1202 -0
  656. package/.koolie/core/tests/scripts/pruefungen/werkzeuge.py +957 -0
  657. package/.koolie/core/tests/scripts/sonden/__init__.py +4 -0
  658. package/.koolie/core/tests/scripts/sonden/apparat.py +653 -0
  659. package/.koolie/core/tests/scripts/sonden/teil01_grundbestand_und_installation.py +999 -0
  660. package/.koolie/core/tests/scripts/sonden/teil02_packs_mandat_mcp.py +942 -0
  661. package/.koolie/core/tests/scripts/sonden/teil03_pruefungen_26_bis_36.py +1184 -0
  662. package/.koolie/core/tests/scripts/sonden/teil04_pruefungen_37_bis_45.py +1491 -0
  663. package/.koolie/core/tests/scripts/sonden/teil05_pruefungen_46_bis_55.py +1447 -0
  664. package/.koolie/core/tests/scripts/sonden/teil06_pruefungen_57_bis_65.py +739 -0
  665. package/.koolie/core/tests/scripts/sonden/teil07_overlay_und_lieferung.py +1014 -0
  666. package/.koolie/core/tests/scripts/sonden/teil08_pruefungen_66_bis_80.py +1325 -0
  667. package/.koolie/core/tests/scripts/sonden/teil09_pruefmittel_81_und_82.py +505 -0
  668. package/.koolie/core/tests/scripts/sonden/teil10_pruefungen_83_bis_95.py +1218 -0
  669. package/.koolie/core/tests/scripts/sonden/teil11_pruefungen_104_und_105.py +149 -0
  670. package/.koolie/core/tests/scripts/sonden/teil12_pruefungen_106_und_107.py +136 -0
  671. package/.koolie/core/tests/scripts/sonden/teil13_pfad_und_mustersemantik.py +150 -0
  672. package/.koolie/core/tests/scripts/sonden/teil14_modi_ausnahmen_skills.py +204 -0
  673. package/.koolie/core/tests/scripts/sonden/teil15_banner_und_nachlauf.py +193 -0
  674. package/.koolie/core/tests/scripts/sonden/teil16_koexistenz.py +114 -0
  675. package/.koolie/core/tests/scripts/sonden/teil17_paketquellen.py +115 -0
  676. package/.koolie/core/tests/scripts/sonden/teil18_modusbindung_m3_m5.py +113 -0
  677. package/.koolie/core/tests/scripts/validate-framework.py +1104 -0
  678. package/.koolie/core/tests/scripts/validate-output.py +296 -0
  679. package/.koolie/core/wirksamkeit.py +430 -0
  680. package/CONTRIBUTING.md +119 -0
  681. package/LICENSE +674 -0
  682. package/QUICKSTART.en.md +135 -0
  683. package/QUICKSTART.md +129 -0
  684. package/README.en.md +108 -0
  685. package/README.md +107 -0
  686. package/install.cmd +44 -0
  687. package/install.command +46 -0
  688. package/package.json +21 -0
  689. package/paketquellen/README.md +41 -0
  690. package/paketquellen/bauen.py +411 -0
  691. package/paketquellen/koolie.cmd +23 -0
  692. package/paketquellen/koolie_befehl.py +82 -0
  693. package/paketquellen/npm/koolie.js +26 -0
@@ -0,0 +1,354 @@
1
+ #!/usr/bin/env python3
2
+ """Assembliert das Hauptdokument aus <CORE>/build/doc/*.md und Repository-Artefakten.
3
+
4
+ Direktiven in den Kapiteldateien:
5
+ {{EMBED:relpfad}} -> Datei als Markdown-Codeblock (4 Backticks, Sprache markdown)
6
+ {{EMBED:relpfad:lang}} -> wie oben mit Sprachangabe (json, yaml, python, text);
7
+ lang "permissions_format" = Ausgabeform der Berechtigungsdatei
8
+ aus dem Manifest des Packs (json oder toml, K-127, D-396)
9
+ {{EMBED-RAW:relpfad:shift}} -> Datei als gerenderten Inhalt einfuegen, Ueberschriften um <shift> Ebenen
10
+ verschoben; YAML-Frontmatter wird als Hinweisblock dargestellt
11
+ {{ZAHL:muster[,muster...]}} -> (im Fliesstext) Zahl der versionierten Kerndateien, die eines der
12
+ Muster treffen; "*" = alle, "." = direkt im Kern, "x/" = unter x/,
13
+ sonst fnmatch relativ zum Kern; "installiert" = Dateien der
14
+ Referenzinstallation (D-377)
15
+ {{VERSION}}, {{CLIENT}} -> Inhalt von VERSION, Client Pack dieses Baus
16
+
17
+ Zwei Quellen fuer eingebettete Dateien:
18
+
19
+ 1. Das Repository. Fuer alles, was dort versioniert liegt - Core-Module, Checklisten,
20
+ Prompts, Vorlagen. Der Pfad ist relativ zum Wurzelverzeichnis.
21
+
22
+ 2. Eine Referenzinstallation. Fuer die Laufzeitschicht, die es im Repository gar nicht
23
+ gibt: Sie entsteht erst bei der Installation und sieht je Client Pack anders aus.
24
+ Enthaelt ein Pfad einen Laufzeit-Platzhalter (<RUNTIME_DIR>, <SKILLS_DIR>,
25
+ <PERMISSIONS_FILE>, ...), wird er gegen das gewaehlte Client Pack aufgeloest und aus
26
+ einer frisch erzeugten Installation in einem temporaeren Verzeichnis gelesen.
27
+
28
+ Der zweite Weg ist der Grund, weshalb das Dokument aus einem frischen Auscheckstand baut.
29
+ Vorher zeigten 28 Einbettungen auf .devin/ und AGENTS.md im Arbeitsverzeichnis - Pfade,
30
+ die in der .gitignore stehen. Der Bau gelang nur, wenn zufaellig eine Installation daneben
31
+ lag, und er zeigte deren Client, ohne das zu sagen.
32
+
33
+ Aufruf:
34
+ python3 build/assemble.py # Referenzclient: devin-desktop
35
+ python3 build/assemble.py --client claude-code
36
+
37
+ Ausgabe: <CORE>/build/out/hauptdokument.md
38
+ """
39
+ from __future__ import annotations
40
+
41
+ import argparse
42
+ import json
43
+ import os
44
+ import re
45
+ import shutil
46
+ import subprocess
47
+ import sys
48
+ import tempfile
49
+
50
+ # CORE = <CORE_DIR>/ (dieses Skript liegt in CORE/build/). Zwei dirname-Aufrufe
51
+ # sind hier richtig und bleiben es: Sie zaehlen den Weg vom Skript zum Kern, und
52
+ # der ist unabhaengig davon, wie tief der Kern unter der Projektwurzel liegt.
53
+ CORE = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
54
+ DOC = os.path.join(CORE, "build", "doc")
55
+ OUT = os.path.join(CORE, "build", "out")
56
+ EMBED_RE = re.compile(r"^\{\{(EMBED|EMBED-RAW):([^:}]+)(?::([^}]+))?\}\}\s*$", re.M)
57
+ LOKAL_RE = re.compile(r"^\{\{LOKALE-ERGAENZUNG\}\}[ \t]*$", re.M)
58
+ ZAHL_RE = re.compile(r"\{\{(ZAHL:([^}]+)|VERSION|CLIENT)\}\}")
59
+
60
+ sys.path.insert(0, CORE)
61
+ import clientmap # noqa: E402 (liegt im Kernverzeichnis)
62
+
63
+ # REPO = Wurzelverzeichnis des Projekts; EMBED-Pfade sind dazu relativ, weil die
64
+ # Wurzel-Anweisungsdatei, die Laufzeitschicht und das Overlay dort liegen.
65
+ #
66
+ # 0.89.0: Bis dahin stand hier ein DRITTER dirname-Aufruf auf CORE - ein im
67
+ # Quelltext gezaehlter Weg zur Projektwurzel und damit die Bauform aus D-299 an
68
+ # einer siebten Stelle. Sie hat die Umbenennung nicht ueberlebt: Seit der Kern
69
+ # unter `.koolie/core` liegt, lieferte sie `.koolie/` statt der Wurzel, und JEDE
70
+ # Einbettung schlug fehl. Das Hauptdokument war damit seit 0.88.0 nicht baubar,
71
+ # ohne dass es eine Pruefung gemeldet haette - Pruefung 76 haelt vier Werkzeuge
72
+ # gegeneinander, und dieses ist keines davon. Der Nachfolger ist dieselbe
73
+ # benannte Ableitung, die die anderen vier verwenden.
74
+ REPO = clientmap.projektwurzel(CORE)
75
+
76
+ REFERENZ_CLIENT = "devin-desktop"
77
+
78
+
79
+ def lade_manifest(client: str) -> dict:
80
+ pfad = os.path.join(CORE, "clients", client, "manifest.json")
81
+ if not os.path.exists(pfad):
82
+ print(f"FEHLER: unbekanntes Client Pack: {client}", file=sys.stderr)
83
+ sys.exit(1)
84
+ with open(pfad, encoding="utf-8") as fh:
85
+ man = json.load(fh)
86
+ # 0.88.0: os.path.basename(CORE) lieferte hier "core" statt ".koolie/core" -
87
+ # der Kern ist seit diesem Release zwei Segmente tief (D-299).
88
+ man.setdefault("runtime_placeholders", {})["<CORE_DIR>"] = clientmap.CORE_REL
89
+ return man
90
+
91
+
92
+ def referenzinstallation(client: str) -> str:
93
+ """Legt eine frische Installation dieses Client Packs in einem temporaeren Verzeichnis an.
94
+
95
+ Die Laufzeitschicht ist kein Repository-Inhalt: Sie entsteht bei der Installation, und
96
+ ihre Form haengt vom Client ab. Das Dokument soll sie in der Fassung zeigen, die ein
97
+ Projekt tatsaechlich vorfindet - also wird sie erzeugt, statt sie aus dem
98
+ Arbeitsverzeichnis zu borgen.
99
+ """
100
+ ziel = tempfile.mkdtemp(prefix="koolie-referenz-")
101
+ ergebnis = subprocess.run(
102
+ [sys.executable, os.path.join(CORE, "install.py"), "--root", ziel, "--client", client],
103
+ capture_output=True, text=True)
104
+ if ergebnis.returncode != 0:
105
+ shutil.rmtree(ziel, ignore_errors=True)
106
+ print(f"FEHLER: Referenzinstallation ({client}) fehlgeschlagen:", file=sys.stderr)
107
+ print(ergebnis.stderr, file=sys.stderr)
108
+ sys.exit(1)
109
+ return ziel
110
+
111
+
112
+ def shift_headings(text: str, shift: int) -> str:
113
+ def repl(m):
114
+ return "#" * min(6, len(m.group(1)) + shift) + m.group(2)
115
+ out_lines = []
116
+ in_fence = False
117
+ for line in text.split("\n"):
118
+ stripped = line.lstrip()
119
+ if stripped.startswith("```"):
120
+ in_fence = not in_fence
121
+ out_lines.append(line)
122
+ continue
123
+ if not in_fence:
124
+ line = re.sub(r"^(#{1,6})(\s)", repl, line)
125
+ out_lines.append(line)
126
+ return "\n".join(out_lines)
127
+
128
+
129
+ def strip_frontmatter(text: str):
130
+ if text.startswith("---"):
131
+ parts = text.split("---", 2)
132
+ if len(parts) >= 3:
133
+ fm = parts[1].strip()
134
+ return fm, parts[2].lstrip("\n")
135
+ return None, text
136
+
137
+
138
+ def quelle(rel: str, man: dict, installation: str):
139
+ """Aufgeloester Pfad, Basisverzeichnis und Herkunft einer Einbettung.
140
+
141
+ Ein Pfad mit Laufzeit-Platzhalter meint die Laufzeitschicht und wird aus der
142
+ Referenzinstallation gelesen; jeder andere Pfad meint das Repository.
143
+ """
144
+ aufgeloest = clientmap.resolve_placeholders(rel, man)
145
+ if aufgeloest != rel:
146
+ # Eine Regeldatei der Ablage traegt die Endung des Packs - bei cursor .mdc
147
+ # (CR-2026-155, D-440); die Kapitelquelle nennt sie mit .md.
148
+ if rel.startswith("<RULES_DIR>/"):
149
+ kopf, _, name = aufgeloest.rpartition("/")
150
+ aufgeloest = kopf + "/" + clientmap.regeldatei(man, name)
151
+ return aufgeloest, installation, True
152
+ return rel, REPO, False
153
+
154
+
155
+ def process(text: str, man: dict, installation: str) -> str:
156
+ # Zwei Platzhalter koennen auf dieselbe Datei zeigen - bei einem Client ohne eigene
157
+ # Hook-Datei etwa <HOOKS_FILE> und <PERMISSIONS_FILE>. Sie zweimal im selben Kapitel
158
+ # abzudrucken waere in jedem Fall falsch: Der Leser sucht den Unterschied, den es
159
+ # nicht gibt. Die zweite Stelle bekommt deshalb einen Verweis.
160
+ gesehen: dict[str, str] = {}
161
+
162
+ def repl(m):
163
+ kind, roh, arg = m.group(1), m.group(2).strip(), (m.group(3) or "").strip()
164
+ rel, basis, aus_installation = quelle(roh, man, installation)
165
+ if rel in gesehen and gesehen[rel] != roh:
166
+ return (f"> Diese Angabe steht bei diesem Client Pack in derselben Datei wie "
167
+ f"`{gesehen[rel]}` – siehe `{rel}` weiter oben.\n")
168
+ gesehen[rel] = roh
169
+ path = os.path.join(basis, rel)
170
+ if not os.path.exists(path):
171
+ woher = f"Referenzinstallation {man['client']}" if aus_installation else "Repository"
172
+ print(f"FEHLER: eingebettete Datei fehlt ({woher}): {rel}", file=sys.stderr)
173
+ sys.exit(1)
174
+ content = open(path, encoding="utf-8").read().rstrip("\n")
175
+ # Woher eine Laufzeitdatei stammt, gehoert an die Datei und nicht in eine Fussnote:
176
+ # Bei einem anderen Client Pack sieht sie anders aus.
177
+ herkunft = (f" · aus einer Referenzinstallation des Client Packs `{man['client']}`"
178
+ if aus_installation else "")
179
+ if kind == "EMBED":
180
+ lang = arg or "markdown"
181
+ # Die Berechtigungsdatei ist nicht bei jedem Pack JSON; bei openai-codex bettete
182
+ # der Bau bis 1.9.3 eine TOML-Datei als JSON ein (K-127, D-396).
183
+ if lang == "permissions_format":
184
+ lang = clientmap.permissions_format(man)
185
+ # Das Agentenprofil von kiro ist JSON (D-414).
186
+ # Die Berechtigungsdatei von cursor ebenso (D-440).
187
+ if lang in ("kiro-agent", "cursor-json"):
188
+ lang = "json"
189
+ if "````" in content:
190
+ print(f"FEHLER: {rel} enthaelt 4 Backticks", file=sys.stderr)
191
+ sys.exit(1)
192
+ return f"**Datei:** `{rel}`{herkunft}\n\n````{lang}\n{content}\n````\n"
193
+ shift = int(arg or "1")
194
+ fm, body = strip_frontmatter(content)
195
+ prefix = f"> **Datei:** `{rel}`{herkunft}"
196
+ if fm:
197
+ fm_compact = "; ".join(l.strip() for l in fm.splitlines() if l.strip())
198
+ prefix += f" · **Frontmatter (Laufzeit):** `{fm_compact}`"
199
+ return prefix + "\n\n" + shift_headings(body, shift) + "\n"
200
+ return EMBED_RE.sub(repl, LOKAL_RE.sub(lambda m: lokale_ergaenzung(man), text))
201
+
202
+
203
+ def kerndateien() -> list:
204
+ """Die versionierten Dateien des Kerns, relativ zum Kern, mit '/'.
205
+
206
+ Aus git, wenn der Kern in einem Arbeitsbaum liegt; sonst aus dem Verzeichnis ohne
207
+ Bytecode und ohne build/out/ - dieselbe Unterscheidung wie install.py --target.
208
+ """
209
+ try:
210
+ roh = subprocess.run(["git", "-C", CORE, "ls-files", "-z", "."], capture_output=True,
211
+ check=True).stdout.decode("utf-8")
212
+ dateien = [p for p in roh.split("\0") if p]
213
+ if dateien:
214
+ return sorted(dateien)
215
+ except (OSError, subprocess.CalledProcessError):
216
+ pass
217
+ dateien = []
218
+ for dirpath, dirnames, filenames in os.walk(CORE):
219
+ dirnames[:] = [d for d in dirnames if d != "__pycache__"]
220
+ rel = os.path.relpath(dirpath, CORE).replace(os.sep, "/")
221
+ if rel == "build/out" or rel.startswith("build/out/"):
222
+ dirnames[:] = []
223
+ continue
224
+ for fn in filenames:
225
+ dateien.append(fn if rel == "." else f"{rel}/{fn}")
226
+ return sorted(dateien)
227
+
228
+
229
+ def zahlen(text: str, dateien: list, man: dict, installation: str) -> str:
230
+ """Setzt {{ZAHL:...}}, {{VERSION}} und {{CLIENT}} ein (D-377).
231
+
232
+ 🔴 WARUM DAS HIER STEHT UND NICHT IN EINER PRUEFUNG: Kapitel 31 nannte bis 1.8.0 "502
233
+ versionierte Dateien" und "123 Aenderungsantraege", gezaehlt zu 0.89.0 - acht Releases
234
+ alt, bei 559 Dateien. Pruefung 78 haelt EINEN Satz des Dokuments gegen den Bestand und
235
+ zahlt dafuer, dass die Zahl erst am Ende des Releases feststeht (D-315). Eine Zahl, die
236
+ der Bau einsetzt, muss niemand setzen - und was niemand setzen muss, veraltet nicht.
237
+ Ein Muster, das NICHTS trifft, bricht den Bau ab: Es ist fast sicher ein Tippfehler,
238
+ und eine stille Null im Dokument waere eine falsche Zahl mit gutem Gewissen.
239
+ """
240
+ import fnmatch
241
+
242
+ def zaehle(muster: str) -> int:
243
+ if muster == "installiert":
244
+ return sum(len(f) for _d, _s, f in os.walk(installation))
245
+ treffer = set()
246
+ for m in (x.strip() for x in muster.split(",")):
247
+ if m == "*":
248
+ t = set(dateien)
249
+ elif m == ".":
250
+ t = {d for d in dateien if "/" not in d}
251
+ elif m.endswith("/"):
252
+ t = {d for d in dateien if d.startswith(m)}
253
+ else:
254
+ t = {d for d in dateien if fnmatch.fnmatchcase(d, m)}
255
+ if not t:
256
+ print(f"FEHLER: {{{{ZAHL:{muster}}}}} - '{m}' trifft keine Kerndatei",
257
+ file=sys.stderr)
258
+ sys.exit(1)
259
+ treffer |= t
260
+ return len(treffer)
261
+
262
+ def repl(m):
263
+ if m.group(1) == "VERSION":
264
+ return open(os.path.join(CORE, "VERSION"), encoding="utf-8").read().strip()
265
+ if m.group(1) == "CLIENT":
266
+ return man["client"]
267
+ return str(zaehle(m.group(2)))
268
+ return ZAHL_RE.sub(repl, text)
269
+
270
+
271
+ def lokale_ergaenzung(man: dict) -> str:
272
+ """Die persoenliche Ergaenzungsdatei - oder die Erklaerung, weshalb es sie nicht gibt.
273
+
274
+ 🔴 BIS 1.4.1 WAR DAS HAUPTDOKUMENT FUER `openai-codex` NICHT BAUBAR (CR-2026-135).
275
+ Kapitel 16 bettete `<ROOT_INSTRUCTION_LOCAL>.example` fuer jedes Pack ein; dieses Pack
276
+ liefert die Vorlage bewusst NICHT aus, weil die Datei bei ihm die Wurzel-Anweisung
277
+ VERDRAENGT statt sie zu ergaenzen (D-341). Der Bau brach ab - und `1.4.0` hat Schritt
278
+ 3 aus RELEASE_PROCESS.md 4.1 fuer das neue Pack nie gefahren.
279
+
280
+ Die Weiche ist das Manifestfeld `root_instruction_override`, nicht das Fehlen der
281
+ Datei: Fehlt sie bei einem Pack OHNE dieses Feld, bricht der Bau weiter ab. Eine
282
+ Einbettung, die bei jedem Fehlen still eine Erklaerung einsetzte, waere die Ausnahme,
283
+ die alles ausnimmt.
284
+ """
285
+ if man.get("root_instruction_local_absent"):
286
+ # Seit 1.13.0 (D-414): Ein Client ohne nutzerlokale Wurzel-Anweisung (kiro). Die
287
+ # Weiche ist wieder ein Manifestfeld und nicht das Fehlen der Datei.
288
+ return (f"🔴 **Eine persönliche Ergänzungsdatei gibt es bei diesem Client Pack nicht** "
289
+ f"(`{man['client']}`): Der Hersteller dokumentiert keine nutzerlokale "
290
+ f"Wurzel-Anweisung, und das Pack liefert keine Vorlage aus. Der Name "
291
+ f"`{man['runtime_placeholders']['<ROOT_INSTRUCTION_LOCAL>']}` steht nur im "
292
+ f"`deny`-Korb, weil die Kernquelle ein Schreibverbot auf ihn führt.")
293
+ if not man.get("root_instruction_override"):
294
+ return ("Ergänzend gehört zur Vorlage die persönliche, nicht versionierte "
295
+ "Ergänzungsdatei – zulässig nur zum Einschränken und für "
296
+ "Arbeitsvorlieben, nie zum Erweitern von Freigaben:\n\n"
297
+ "{{EMBED:<ROOT_INSTRUCTION_LOCAL>.example}}")
298
+ lokal = man["runtime_placeholders"]["<ROOT_INSTRUCTION_LOCAL>"]
299
+ return (f"🔴 **Eine persönliche Ergänzungsdatei gibt es bei diesem Client Pack nicht** "
300
+ f"(`{man['client']}`). Die Datei an ihrer Stelle, `{lokal}`, ergänzt "
301
+ f"`{man['root_instruction_file']}` nicht, sondern **verdrängt** sie vollständig: "
302
+ f"Liegt sie im Projekt, steht die Wurzel-Anweisung des Frameworks in keiner "
303
+ f"Nachricht der Sitzung (D-341, gemessen mit Gegenprobe). Das Pack liefert "
304
+ f"deshalb keine Vorlage aus, der `deny`-Korb stellt die Datei schreibgeschützt, "
305
+ f"der Schutz-Hook führt sie in seinen Mustern, und Prüfung 88 meldet sie, wenn "
306
+ f"sie trotzdem im Projektbaum liegt.")
307
+
308
+
309
+ def main() -> None:
310
+ ap = argparse.ArgumentParser(description="Assembliert das Hauptdokument.")
311
+ ap.add_argument("--client", default=REFERENZ_CLIENT,
312
+ help=f"Client Pack der Referenzinstallation (Standard: {REFERENZ_CLIENT})")
313
+ args = ap.parse_args()
314
+
315
+ man = lade_manifest(args.client)
316
+ # Ein abgebrochener Bau darf kein Erzeugnis des VORIGEN Baus stehen lassen: Sonst
317
+ # setzt build-docx.py daraus eine Word-Fassung zusammen und benennt sie nach dem
318
+ # vorigen Pack - gemessen am 2026-09-24, als der Bau fuer openai-codex abbrach und
319
+ # danach die Fassung fuer devin-desktop ein zweites Mal entstand (CR-2026-135).
320
+ for alt in ("hauptdokument.md", "referenzclient.txt"):
321
+ if os.path.exists(os.path.join(OUT, alt)):
322
+ os.remove(os.path.join(OUT, alt))
323
+ installation = referenzinstallation(args.client)
324
+ try:
325
+ os.makedirs(OUT, exist_ok=True)
326
+ parts = []
327
+ dateien = kerndateien()
328
+ for fn in sorted(os.listdir(DOC)):
329
+ if fn.endswith(".md"):
330
+ roh = open(os.path.join(DOC, fn), encoding="utf-8").read().rstrip("\n")
331
+ # Die Zahlen VOR den Einbettungen: Eine eingebettete Datei, die die
332
+ # Direktive nennt, wird zitiert und nicht ausgerechnet.
333
+ parts.append(process(zahlen(roh, dateien, man, installation), man, installation))
334
+ result = "\n\n".join(parts) + "\n"
335
+ out_path = os.path.join(OUT, "hauptdokument.md")
336
+ with open(out_path, "w", encoding="utf-8") as fh:
337
+ fh.write(result)
338
+ # 🔴 WELCHES PACK DIESER BAU ABBILDET, MUSS NEBEN DEM ERZEUGNIS STEHEN (D-314).
339
+ # Beide Packs schreiben nach derselben Datei, und die beiden Fassungen sind NICHT
340
+ # gleich - am 2026-09-23 gemessen: 1.956.225 gegen 1.959.896 Zeichen. Ohne diese
341
+ # Marke traegt die Word-Fassung beider Baeue denselben Dateinamen, und welche
342
+ # Lieferung man in der Hand haelt, steht nirgends. Der Dateiname selbst bleibt,
343
+ # wie er ist: Chronik und Entscheidungen nennen ihn, und ein Erzeugnis umzubenennen
344
+ # macht aus richtigen Verweisen tote.
345
+ with open(os.path.join(OUT, "referenzclient.txt"), "w", encoding="utf-8") as fh:
346
+ fh.write(args.client + "\n")
347
+ finally:
348
+ shutil.rmtree(installation, ignore_errors=True)
349
+ print(f"Referenzclient: {args.client}")
350
+ print(f"geschrieben: {out_path} ({len(result)} Zeichen, {result.count(chr(10))} Zeilen)")
351
+
352
+
353
+ if __name__ == "__main__":
354
+ main()
@@ -0,0 +1,194 @@
1
+ #!/usr/bin/env python3
2
+ """Erzeugt die Word-Fassung des Hauptdokuments.
3
+
4
+ Schritte:
5
+ 1. Mermaid-Bloecke aus build/out/hauptdokument.md nach PNG rendern (mmdc) und im
6
+ Markdown durch Bildverweise ersetzen (die normative Textbeschreibung bleibt erhalten).
7
+ 2. pandoc-Konvertierung nach DOCX (markdown ohne raw_html, Inhaltsverzeichnis, deutsche
8
+ Metadaten).
9
+
10
+ 🔴 DIE METADATEN WERDEN AUS DEM DOKUMENT GELESEN, NICHT HIER GESCHRIEBEN (D-314).
11
+ Bis 0.89.0 standen Titel, Untertitel und Datum als feste Zeichenketten in diesem Skript:
12
+ "Framework fuer den professionellen Einsatz von <Clientname>", "Version 0.1.0",
13
+ "2026-09-02". Das Dokument selbst heisst seit 0.88.0 anders, steht seit 0.89.0 auf
14
+ 0.89.0 - und dieses Werkzeug haette den ueberholten Titel samt CLIENTNAMEN in die
15
+ Dokumenteigenschaften der Lieferung gestempelt. Pruefung 77 haelt die Versionszeile des
16
+ Dokuments, erreicht dieses Werkzeug aber nicht; Pruefung 14 erreichte es bis 0.89.0
17
+ ebenfalls nicht (D-313). ➡️ Eine Angabe, die zweimal dasteht, veraltet einmal.
18
+
19
+ 🔴 BROWSER UND ARBEITSVERZEICHNIS SIND NICHT MEHR FEST VERDRAHTET (D-314). Bis 0.89.0
20
+ schrieb dieses Skript seine Puppeteer-Konfiguration nach "/tmp/..." und nannte darin
21
+ einen Chromium-Pfad einer Container-Umgebung ("/opt/pw-browsers/..."). Auf einem
22
+ Windows-Arbeitsplatz existiert beides nicht - das Werkzeug war dort nicht lauffaehig,
23
+ und das ist zwei Releases lang niemandem aufgefallen, weil es nie gelaufen ist.
24
+ """
25
+ import glob
26
+ import os
27
+ import re
28
+ import shutil
29
+ import subprocess
30
+ import sys
31
+
32
+ ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
33
+ OUT = os.path.join(ROOT, "build", "out")
34
+ IMG = os.path.join(OUT, "img")
35
+ SRC = os.path.join(OUT, "hauptdokument.md")
36
+ MD_DOCX = os.path.join(OUT, "hauptdokument.docx.md")
37
+ PPTR = os.path.join(OUT, "puppeteer-config.json")
38
+
39
+ # Browsersuche und Puppeteer-Konfiguration teilt dieses Werkzeug mit dem Validator
40
+ # (`--mermaid`); bis 1.9.3 standen sie nur hier, und der Validator scheiterte ohne sie an
41
+ # jedem Diagramm (K-145, D-398).
42
+ sys.path.insert(0, os.path.join(ROOT, "tests", "scripts"))
43
+ import mermaid_renderer # noqa: E402
44
+
45
+ # --- Vorbedingungen, benannt statt vermutet ---------------------------------------
46
+ #
47
+ # Ein Werkzeug, das ohne seine Vorbedingung startet, scheitert irgendwo in der Mitte und
48
+ # laesst ein halbes Erzeugnis liegen. Die Pruefung steht deshalb VOR dem ersten Schritt
49
+ # und nennt beide fehlenden Namen auf einmal - nicht den ersten und dann den zweiten.
50
+ fehlend = [name for name in ("mmdc", "pandoc") if shutil.which(name) is None]
51
+ if not os.path.exists(SRC):
52
+ sys.exit(f"FEHLER: {SRC} fehlt. Zuerst build/assemble.py fahren - die Word-Fassung "
53
+ f"entsteht aus der Markdown-Fassung und nicht aus den Kapitelquellen.")
54
+ if fehlend:
55
+ sys.exit("FEHLER: auf diesem Arbeitsplatz nicht gefunden: " + ", ".join(fehlend)
56
+ + ".\n pandoc: ueber den Paketverwalter des Arbeitsplatzes"
57
+ + "\n mmdc: npm install -g @mermaid-js/mermaid-cli")
58
+
59
+
60
+ def kopfangaben(text: str) -> dict:
61
+ """Titel, Untertitel, Dokumentversion und Stand - aus dem Dokument selbst.
62
+
63
+ Der Kopf ist build/doc/00-kopf.md, und Pruefung 77 haelt seine Versionszeile gegen
64
+ <CORE_DIR>/VERSION. Wer hier liest, erbt diese Pruefung; wer die Werte abschreibt,
65
+ erbt sie nicht.
66
+ """
67
+ angaben = {}
68
+ m = re.search(r"^#\s+(.+?)\s*$", text, re.M)
69
+ if m:
70
+ angaben["title"] = m.group(1)
71
+ m = re.search(r"^\*\*(.+?)\*\*\s*$", text, re.M)
72
+ if m:
73
+ angaben["subtitle"] = m.group(1)
74
+ m = re.search(r"^\|\s*Dokumentversion\s*\|\s*([0-9]+\.[0-9]+\.[0-9]+)", text, re.M)
75
+ if m:
76
+ angaben["version"] = m.group(1)
77
+ m = re.search(r"^\|\s*Stand\s*\|\s*([0-9]{4}-[0-9]{2}-[0-9]{2})", text, re.M)
78
+ if m:
79
+ angaben["date"] = m.group(1)
80
+ return angaben
81
+
82
+
83
+ text = open(SRC, encoding="utf-8").read()
84
+ kopf = kopfangaben(text)
85
+ fehlende_angaben = [k for k in ("title", "subtitle", "version", "date") if k not in kopf]
86
+ if fehlende_angaben:
87
+ sys.exit("FEHLER: im Dokumentkopf nicht gefunden: " + ", ".join(fehlende_angaben)
88
+ + ".\n Die Metadaten der Word-Fassung stammen aus dem Dokument. "
89
+ "Fehlt eine Angabe,\n traegt die Lieferung lieber keine als eine "
90
+ "erfundene (D-314).")
91
+
92
+ # Alte Bilder wegraeumen: Ein Lauf mit weniger Diagrammen als der vorige liesse sonst
93
+ # die ueberzaehligen liegen, und der naechste Lauf faende sie vor.
94
+ os.makedirs(IMG, exist_ok=True)
95
+ for alt in glob.glob(os.path.join(IMG, "diagramm-*.png")) + \
96
+ glob.glob(os.path.join(IMG, "diagramm-*.mmd")):
97
+ os.remove(alt)
98
+
99
+ browser = mermaid_renderer.browserpfad()
100
+ if browser is None:
101
+ sys.exit("FEHLER: kein Chromium-artiger Browser gefunden. Der Mermaid-Renderer "
102
+ "braucht einen.\n Pfad ueber PUPPETEER_EXECUTABLE_PATH angeben.")
103
+ mermaid_renderer.puppeteer_konfiguration(PPTR, browser)
104
+
105
+ blocks = re.findall(r"```mermaid\n(.*?)```", text, re.S)
106
+ print(f"Mermaid-Bloecke: {len(blocks)}")
107
+
108
+ counter = 0
109
+
110
+
111
+ def render(match):
112
+ global counter
113
+ counter += 1
114
+ src_path = os.path.join(IMG, f"diagramm-{counter:02d}.mmd")
115
+ png_path = os.path.join(IMG, f"diagramm-{counter:02d}.png")
116
+ with open(src_path, "w", encoding="utf-8") as fh:
117
+ fh.write(match.group(1))
118
+ r = subprocess.run([shutil.which("mmdc"), "-i", src_path, "-o", png_path, "-q",
119
+ "-p", PPTR, "-b", "white", "-s", "2"],
120
+ capture_output=True, text=True, encoding="utf-8",
121
+ errors="replace", shell=os.name == "nt")
122
+ if r.returncode != 0:
123
+ print(f"FEHLER Diagramm {counter}: {(r.stderr or '')[:300]}", file=sys.stderr)
124
+ sys.exit(1)
125
+ # 🔴 RELATIV UND MIT SCHRAEGSTRICH, und beides ist gemessen (D-314). Bis 0.89.0 stand
126
+ # hier der ABSOLUTE Pfad. Unter Windows enthaelt der Rueckstriche, und pandoc liest
127
+ # einen Rueckstrich in einem Markdown-Link als MASKIERUNG: aus "...\koolie\.koolie\..."
128
+ # wurde "...koolie.koolie\..." - eine Datei, die es nicht gibt. Am 2026-09-23 hat der
129
+ # erste Lauf dieses Werkzeugs auf einem Windows-Arbeitsplatz ACHT VON ACHT Diagrammen
130
+ # verloren, mit Exit 0 und einer geschriebenen Datei. Der Pfad ist jetzt relativ zu
131
+ # --resource-path, und unten bricht der Lauf ab, wenn pandoc eine Ressource meldet.
132
+ rel_png = os.path.relpath(png_path, OUT).replace(os.sep, "/")
133
+ return (f"![Diagramm {counter} (Mermaid-Quelltext im Referenz-Repository)]"
134
+ f"({rel_png})")
135
+
136
+
137
+ text = re.sub(r"```mermaid\n(.*?)```", render, text, flags=re.S)
138
+ with open(MD_DOCX, "w", encoding="utf-8") as fh:
139
+ fh.write(text)
140
+ print(f"vorverarbeitet: {MD_DOCX}")
141
+
142
+ # Das Pack gehoert in den Namen der Lieferung, nicht nur in die Meldung des Baus: Beide
143
+ # Packs schreiben nach derselben Markdown-Datei, und ohne diese Marke truege die
144
+ # Word-Fassung beider Baeue denselben Namen (D-314). Fehlt die Marke, traegt der Name
145
+ # sie nicht - eine erfundene waere schlimmer als keine.
146
+ _marke = os.path.join(OUT, "referenzclient.txt")
147
+ _client = (open(_marke, encoding="utf-8").read().strip()
148
+ if os.path.exists(_marke) else "")
149
+ DOCX = os.path.join(OUT, f"Koolie_v{kopf['version']}"
150
+ + (f"_{_client}" if _client else "") + ".docx")
151
+ cmd = ["pandoc", MD_DOCX,
152
+ "-f", "markdown-raw_html+pipe_tables",
153
+ "-t", "docx",
154
+ "--toc", "--toc-depth=2",
155
+ "--metadata", "toc-title=Inhaltsverzeichnis",
156
+ "--metadata", "lang=de-DE",
157
+ "--metadata", f"title={kopf['title']}",
158
+ "--metadata", f"subtitle={kopf['subtitle']} - Version {kopf['version']}",
159
+ "--metadata", f"date={kopf['date']}",
160
+ "--reference-doc", os.path.join(ROOT, "build", "ref-a4.docx"),
161
+ "--resource-path", OUT,
162
+ "-o", DOCX]
163
+ r = subprocess.run(cmd, capture_output=True, text=True, encoding="utf-8",
164
+ errors="replace")
165
+ if r.returncode != 0:
166
+ print("pandoc-Fehler:", (r.stderr or "")[:2000], file=sys.stderr)
167
+ sys.exit(1)
168
+
169
+ # 🔴 EINE NICHT GEHOLTE RESSOURCE IST EIN FEHLER, KEINE WARNUNG (D-314). pandoc ersetzt
170
+ # ein Bild, das es nicht findet, durch seine Beschreibung und endet mit Exit 0. Am
171
+ # 2026-09-23 sind auf diese Weise ACHT VON ACHT Diagrammen aus der Lieferung gefallen,
172
+ # und die einzige Spur war eine Warnzeile. Ein Erzeugnis, dem ein zugesagter Bestandteil
173
+ # fehlt, gilt hier als nicht erzeugt.
174
+ verloren = re.findall(r"Could not fetch resource ([^\r\n:]+)", r.stderr or "")
175
+ if verloren:
176
+ print(f"FEHLER: pandoc hat {len(verloren)} Ressource(n) nicht geholt - die "
177
+ f"Word-Fassung traegt sie nicht:", file=sys.stderr)
178
+ for pfad in sorted(set(verloren))[:10]:
179
+ print(" " + pfad, file=sys.stderr)
180
+ os.remove(DOCX)
181
+ sys.exit(1)
182
+
183
+ diagramme = len(re.findall(r"!\[Diagramm \d+", text))
184
+ if diagramme != len(blocks):
185
+ print(f"FEHLER: {len(blocks)} Mermaid-Bloecke, aber {diagramme} Bildverweise im "
186
+ f"vorverarbeiteten Markdown.", file=sys.stderr)
187
+ os.remove(DOCX)
188
+ sys.exit(1)
189
+
190
+ size = os.path.getsize(DOCX)
191
+ print(f"geschrieben: {DOCX} ({size / 1024 / 1024:.1f} MB), "
192
+ f"{diagramme} Diagramme eingebettet")
193
+ if (r.stderr or "").strip():
194
+ print("pandoc-Warnungen (Auszug):", r.stderr[:800])
@@ -0,0 +1,18 @@
1
+ # Koolie – Framework für den professionellen Einsatz von KI-Codierassistenten in Softwareentwicklungsteams
2
+
3
+ **Vorgehensmodell und technische Referenzimplementierung – projektneutral, wiederverwendbar, erweiterbar**
4
+
5
+ | | |
6
+ |---|---|
7
+ | Dokumentversion | 1.25.0 (entspricht Framework-Release 1.25.0) |
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) |
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. |
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
+ | Autorenschaft | erstellt als beauftragte Ausarbeitung; Verantwortungsübernahme durch `<FRAMEWORK_OWNER>` bei Übernahme |
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).
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.
@@ -0,0 +1,24 @@
1
+ # 1 Executive Summary
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.
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).
6
+
7
+ Das Framework beantwortet die zehn Leitfragen des Auftrags so:
8
+
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.
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
+ - **Onboarding** erfolgt über ein Programm mit Übungen, Negativübungen (Ködern) und dokumentierter Freigabe.
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
+ - **Versionierung, Pflege und Übertragung** regelt ein Governance-Betriebsmodell mit Release-Prozess, Testkatalog und Übernahmeleitfaden.
16
+ - **Nutzen und Risiken** misst ein Pilotkonzept mit ausdrücklich projektspezifisch festzulegenden Zielwerten.
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).
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).
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.
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.
@@ -0,0 +1,13 @@
1
+ # 2 Zielbild
2
+
3
+ Das Framework beschreibt einen Zustand, in dem KI-Unterstützung ein normaler, unaufgeregter Teil des Entwicklungsprozesses ist – so selbstverständlich und so kontrolliert wie eine Build-Pipeline:
4
+
5
+ **Für Entwicklerinnen und Entwickler:** Eine Aufgabe beginnt mit einem kurzen Preflight (Stufe, Modus, Scope, Kontext) und läuft dann entlang vertrauter Skills: verstehen, planen, klein ändern, testen, dokumentieren. Der Assistent liefert belegte Befunde statt Behauptungen; Rückfragen des Agenten sind Alltag und willkommen. Die Prüfarbeit verlagert sich dorthin, wo menschliches Urteil zählt: Aufgaben zuschneiden, Fundstellen verifizieren, Diffs verstehen. Niemand übernimmt Code, den er nicht erklären kann – und niemand muss, denn der Prozess lässt dafür Raum.
6
+
7
+ **Für neue Teammitglieder:** Der KI-Client ist vom ersten Tag an ein geduldiges Erschließungswerkzeug: Codebasis analysieren, Abläufe erklären lassen, Fragenlisten für das Mentorengespräch aufbauen – nur lesend, auf einem Übungsrepository auch schreibend. Das Onboarding vermittelt ausdrücklich, dass souveräne Nutzung an der Qualität der Abgrenzung, der Kontextauswahl und der Prüfung gemessen wird, nicht an der Menge delegierter Aufgaben. Die Freigabe zur selbstständigen Nutzung ist ein definierter, dokumentierter Punkt.
8
+
9
+ **Für Reviewer, Architektur, Sicherheit und Datenschutz:** Jede KI-unterstützte Änderung ist als solche gekennzeichnet (Nutzungsvermerk mit Stufe, Modus, Skills, Kontext), klein geschnitten und mit Ergebnisbericht unterlegt. Die bestehenden Gates gelten unverändert; KI-spezifische Prüfpunkte (Fundstellen-Treue, Testaussagekraft, API-Existenz) sind Checklisten-Routine. Sicherheits- und Datenschutzgrenzen sind doppelt gezogen – als Regel und als technische Sperre – sodass ein einzelner Fehler nicht genügt, um sie zu reißen.
10
+
11
+ **Für Projektleitung und Organisation:** Der Einsatz ist auditierbar (Versionen, Vermerke, Register), messbar (Pilotmetriken als Bündel, ohne Personenbewertung) und steuerbar (Kontrollstufen, Freigaben, Ausnahme- und Vorfallprozess). Ein neues Projekt übernimmt das Framework als Release, füllt ein Overlay und ist arbeitsfähig, ohne den Kern anzufassen; ein Produktwechsel des Werkzeugs trifft nur die Abbildung auf den Client – ein anderes Client Pack –, nicht die Regeln (Kap. 7a).
12
+
13
+ **Für das Framework selbst:** Es ist ein gepflegtes Produkt mit Owner, Feedbackkanal, Testkatalog und Release-Zyklus – es lernt aus Reviews, Vorfällen und Produktänderungen, statt zu veralten.
@@ -0,0 +1,28 @@
1
+ # 3 Ziele und Nicht-Ziele
2
+
3
+ ## 3.1 Ziele
4
+
5
+ | Nr. | Ziel | Umgesetzt durch |
6
+ |---|---|---|
7
+ | Z1 | Sicherer, kontrollierter, effizienter Assistenz-Einsatz mit klaren Grenzen | Kontrollschichten (Kap. 12), Betriebsmodi (Kap. 9), Risikoklassifizierung (Kap. 13), Delegationsverbote |
8
+ | Z2 | Konsistentes, schnelles Onboarding neuer Entwicklerinnen und Entwickler | Onboarding-Paket (Kap. 24), lesende Skills, Erklärvorlagen |
9
+ | Z3 | Kontrollierte, aufgabenbezogene Kontextbereitstellung | Kontextklassen K0–K3, Overlay-Manifest, technische Sperren (Kap. 11) |
10
+ | Z4 | Wiederverwendbarkeit über Projekte mit minimalem Anpassungsaufwand | Ebenenarchitektur, austauschbares Overlay, Adoption Guide (Kap. 7, 8, 28) |
11
+ | Z5 | Unveränderte Geltung bestehender Qualitäts- und Freigabeprozesse | P6, Review-Regeln, MR-Vermerk (Kap. 10, 14, 22) |
12
+ | Z6 | Nachvollziehbarkeit und Auditierbarkeit jedes KI-Einsatzes | Ergebnisberichte, Nutzungsvermerke, Versionsketten (Kap. 25) |
13
+ | Z7 | Pflegbarkeit und Prüfbarkeit des Frameworks selbst | Governance, Testkatalog, Validierungsskripte (Kap. 25, 26) |
14
+ | Z8 | Messbarkeit von Nutzen, Qualität, Risiken und Akzeptanz | Pilotkonzept und Metriken (Kap. 27) |
15
+ | Z9 | Übertragbarkeit der Prinzipien auf andere KI-Werkzeuge | Tool Independence: kanonische Ebene getrennt von der Laufzeitschicht (Kap. 8, 15) |
16
+
17
+ ## 3.2 Nicht-Ziele
18
+
19
+ | Nr. | Nicht-Ziel | Begründung und Abgrenzung |
20
+ |---|---|---|
21
+ | N1 | Maximierung des Automatisierungsgrads oder „autonome" Entwicklung | Human Accountability ist Grundprinzip; Autonomie-Modi sind untersagt beziehungsweise ausnahmepflichtig |
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) |
24
+ | N4 | Bewertung oder Überwachung von Personen anhand von Nutzungs- oder Pilotdaten | Ausdrücklich ausgeschlossen (V7, Metrik-Grundsätze) |
25
+ | N5 | Produktdokumentation oder Schulung für einen KI-Client als Produkt | Das Framework referenziert die offizielle Dokumentation; es dupliziert sie nicht |
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 |
28
+ | N8 | Garantie fehlerfreier KI-Ergebnisse | Unerreichbar; das Framework macht Fehler früh sichtbar und begrenzt ihre Wirkung |