@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.
- package/.gitattributes +16 -0
- package/.gitignore +51 -0
- package/.koolie/QUELLREPOSITORIUM.md +18 -0
- package/.koolie/core/CHANGELOG.md +11832 -0
- package/.koolie/core/LICENSE +674 -0
- package/.koolie/core/LICENSE-HINWEIS.md +98 -0
- package/.koolie/core/OWNERS.md +36 -0
- package/.koolie/core/VERSION +1 -0
- package/.koolie/core/banner.py +397 -0
- package/.koolie/core/build/README.md +34 -0
- package/.koolie/core/build/assemble.py +354 -0
- package/.koolie/core/build/build-docx.py +194 -0
- package/.koolie/core/build/doc/00-kopf.md +18 -0
- package/.koolie/core/build/doc/01-executive-summary.md +24 -0
- package/.koolie/core/build/doc/02-zielbild.md +13 -0
- package/.koolie/core/build/doc/03-ziele-nichtziele.md +28 -0
- package/.koolie/core/build/doc/04-geltungsbereich.md +25 -0
- package/.koolie/core/build/doc/05-glossar.md +47 -0
- package/.koolie/core/build/doc/06-leitprinzipien.md +5 -0
- package/.koolie/core/build/doc/07-architektur.md +60 -0
- package/.koolie/core/build/doc/07a-abbildungsschicht.md +66 -0
- package/.koolie/core/build/doc/08-trennung.md +24 -0
- package/.koolie/core/build/doc/09-betriebsmodi.md +18 -0
- package/.koolie/core/build/doc/10-arbeitsablauf.md +5 -0
- package/.koolie/core/build/doc/11-datenschutz.md +5 -0
- package/.koolie/core/build/doc/12-sicherheit.md +5 -0
- package/.koolie/core/build/doc/13-risiko.md +5 -0
- package/.koolie/core/build/doc/14-rollen.md +9 -0
- package/.koolie/core/build/doc/15-referenzstruktur.md +124 -0
- package/.koolie/core/build/doc/16-agentenanweisung.md +8 -0
- package/.koolie/core/build/doc/17-overlay.md +29 -0
- package/.koolie/core/build/doc/18-skill-standard.md +5 -0
- package/.koolie/core/build/doc/19-skill-template.md +5 -0
- package/.koolie/core/build/doc/20-referenz-skills.md +70 -0
- package/.koolie/core/build/doc/21-prompts.md +53 -0
- package/.koolie/core/build/doc/22-checklisten.md +49 -0
- package/.koolie/core/build/doc/23-entscheidungsbaeume.md +29 -0
- package/.koolie/core/build/doc/24-onboarding.md +33 -0
- package/.koolie/core/build/doc/25-governance.md +35 -0
- package/.koolie/core/build/doc/26-qs-test.md +9 -0
- package/.koolie/core/build/doc/27-pilot.md +13 -0
- package/.koolie/core/build/doc/28-uebernahme.md +5 -0
- package/.koolie/core/build/doc/29-grenzen.md +87 -0
- package/.koolie/core/build/doc/30-roadmap.md +5 -0
- package/.koolie/core/build/doc/31-anhaenge.md +151 -0
- package/.koolie/core/build/doc/32-abschluss.md +92 -0
- package/.koolie/core/build/ref-a4.docx +0 -0
- package/.koolie/core/checklists/01-preflight.md +54 -0
- package/.koolie/core/checklists/02-privacy-context.md +51 -0
- package/.koolie/core/checklists/03-before-code-change.md +51 -0
- package/.koolie/core/checklists/04-review-ai-code.md +58 -0
- package/.koolie/core/checklists/05-testing.md +48 -0
- package/.koolie/core/checklists/06-security.md +50 -0
- package/.koolie/core/checklists/07-new-dependency.md +57 -0
- package/.koolie/core/checklists/08-merge-request.md +47 -0
- package/.koolie/core/checklists/09-onboarding.md +52 -0
- package/.koolie/core/checklists/10-project-adoption.md +74 -0
- package/.koolie/core/checklists/11-framework-release.md +71 -0
- package/.koolie/core/checklists/README.md +28 -0
- package/.koolie/core/clientmap.py +1358 -0
- package/.koolie/core/clients/README.md +113 -0
- package/.koolie/core/clients/_template/CLIENT_PACK.md +197 -0
- package/.koolie/core/clients/claude-code/CLIENT_PACK.md +383 -0
- package/.koolie/core/clients/claude-code/manifest.json +232 -0
- package/.koolie/core/clients/claude-code/root-template/.claude/README.md +127 -0
- package/.koolie/core/clients/cursor/CLIENT_PACK.md +229 -0
- package/.koolie/core/clients/cursor/manifest.json +330 -0
- package/.koolie/core/clients/cursor/root-template/.cursor/README.md +36 -0
- package/.koolie/core/clients/devin-desktop/CLIENT_PACK.md +251 -0
- package/.koolie/core/clients/devin-desktop/manifest.json +163 -0
- package/.koolie/core/clients/devin-desktop/root-template/.devin/README.md +79 -0
- package/.koolie/core/clients/kiro/CLIENT_PACK.md +223 -0
- package/.koolie/core/clients/kiro/manifest.json +300 -0
- package/.koolie/core/clients/kiro/root-template/.kiro/README.md +37 -0
- package/.koolie/core/clients/openai-codex/CLIENT_PACK.md +257 -0
- package/.koolie/core/clients/openai-codex/manifest.json +208 -0
- package/.koolie/core/clients/openai-codex/root-template/.codex/README.md +35 -0
- package/.koolie/core/decision-trees/01-context-allowed.md +46 -0
- package/.koolie/core/decision-trees/02-may-ai-do-task.md +47 -0
- package/.koolie/core/decision-trees/03-analyze-or-modify.md +50 -0
- package/.koolie/core/decision-trees/04-required-review.md +49 -0
- package/.koolie/core/decision-trees/05-stop-or-escalate.md +47 -0
- package/.koolie/core/decision-trees/06-rule-placement.md +58 -0
- package/.koolie/core/decision-trees/README.md +14 -0
- package/.koolie/core/docs/ADOPTION_GUIDE.md +582 -0
- package/.koolie/core/docs/DOCUMENTATION_STANDARD.md +91 -0
- package/.koolie/core/docs/PLACEHOLDER_REGISTRY.md +79 -0
- package/.koolie/core/docs/ROADMAP.md +848 -0
- package/.koolie/core/docs/RUNTIME_GLOSSARY.md +113 -0
- package/.koolie/core/examples/README.md +11 -0
- package/.koolie/core/examples/example-ergebnisbericht.md +31 -0
- package/.koolie/core/examples/example-mr-description.md +31 -0
- package/.koolie/core/examples/example-overlay-runtime.md +48 -0
- package/.koolie/core/framework/core/00-principles.md +93 -0
- package/.koolie/core/framework/core/01-governance.md +58 -0
- package/.koolie/core/framework/core/02-privacy.md +141 -0
- package/.koolie/core/framework/core/03-security.md +86 -0
- package/.koolie/core/framework/core/04-quality.md +48 -0
- package/.koolie/core/framework/core/05-working-model.md +199 -0
- package/.koolie/core/framework/core/06-prompting-rules.md +51 -0
- package/.koolie/core/framework/core/07-review-rules.md +52 -0
- package/.koolie/core/framework/core/08-skill-conventions.md +115 -0
- package/.koolie/core/framework/core/09-risk-model.md +87 -0
- package/.koolie/core/framework/core/10-error-escalation.md +53 -0
- package/.koolie/core/framework/org-policies/MAPPING_CLASSIFICATION.md +16 -0
- package/.koolie/core/framework/org-policies/README.md +29 -0
- package/.koolie/core/framework/overlay-patterns/general/documents/branching-strategy/muster-general.md +43 -0
- package/.koolie/core/framework/overlay-patterns/general/documents/coding-guidelines/muster-general.md +82 -0
- package/.koolie/core/framework/overlay-patterns/general/documents/definition-of-done/muster-general.md +52 -0
- package/.koolie/core/framework/overlay-patterns/general/documents/definition-of-ready/muster-general.md +54 -0
- package/.koolie/core/framework/overlay-patterns/general/documents/quality/muster-general.md +59 -0
- package/.koolie/core/framework/overlay-patterns/general/documents/security/muster-general.md +52 -0
- package/.koolie/core/framework/overlay-patterns/general.md +150 -0
- package/.koolie/core/framework/role-packs/README.md +63 -0
- package/.koolie/core/framework/role-packs/_template/ROLE_PACK.md +58 -0
- package/.koolie/core/framework/role-packs/requirements-engineering/ROLE_PACK.md +158 -0
- package/.koolie/core/framework/role-packs/requirements-engineering/runtime/30-role-requirements-engineering.md +88 -0
- package/.koolie/core/framework/role-packs/requirements-engineering/skills/role-re-ticket/CHANGELOG.md +10 -0
- package/.koolie/core/framework/role-packs/requirements-engineering/skills/role-re-ticket/EXAMPLES.md +148 -0
- package/.koolie/core/framework/role-packs/requirements-engineering/skills/role-re-ticket/SKILL.md +195 -0
- package/.koolie/core/framework/role-packs/requirements-engineering/skills/role-re-ticket/TESTS.md +22 -0
- package/.koolie/core/framework/role-packs/software-development/ROLE_PACK.md +95 -0
- package/.koolie/core/framework/role-packs/software-development/runtime/30-role-software-development.md +26 -0
- package/.koolie/core/framework/runtime/agents/fw-reviewer.md +34 -0
- package/.koolie/core/framework/runtime/client-settings.json +3 -0
- package/.koolie/core/framework/runtime/hooks.json +20 -0
- package/.koolie/core/framework/runtime/mcp-config.example.json +4 -0
- package/.koolie/core/framework/runtime/permissions.json +106 -0
- package/.koolie/core/framework/runtime/root-instruction-local.example.md +19 -0
- package/.koolie/core/framework/runtime/root-instruction.md +116 -0
- package/.koolie/core/framework/runtime/rules/00-framework-core.md +49 -0
- package/.koolie/core/framework/runtime/rules/10-privacy-security.md +49 -0
- package/.koolie/core/framework/runtime/rules/15-development-rules.md +41 -0
- package/.koolie/core/framework/runtime/rules/16-plan-spezifikation.md +32 -0
- package/.koolie/core/framework/runtime/rules/20-project-overlay.md +60 -0
- package/.koolie/core/framework/skills/fw-bugfix-prepare/CHANGELOG.md +14 -0
- package/.koolie/core/framework/skills/fw-bugfix-prepare/EXAMPLES.md +57 -0
- package/.koolie/core/framework/skills/fw-bugfix-prepare/SKILL.md +177 -0
- package/.koolie/core/framework/skills/fw-bugfix-prepare/TESTS.md +15 -0
- package/.koolie/core/framework/skills/fw-change-analyze/CHANGELOG.md +12 -0
- package/.koolie/core/framework/skills/fw-change-analyze/EXAMPLES.md +66 -0
- package/.koolie/core/framework/skills/fw-change-analyze/SKILL.md +167 -0
- package/.koolie/core/framework/skills/fw-change-analyze/TESTS.md +16 -0
- package/.koolie/core/framework/skills/fw-change-small/CHANGELOG.md +13 -0
- package/.koolie/core/framework/skills/fw-change-small/EXAMPLES.md +68 -0
- package/.koolie/core/framework/skills/fw-change-small/SKILL.md +175 -0
- package/.koolie/core/framework/skills/fw-change-small/TESTS.md +13 -0
- package/.koolie/core/framework/skills/fw-code-explain/CHANGELOG.md +11 -0
- package/.koolie/core/framework/skills/fw-code-explain/EXAMPLES.md +61 -0
- package/.koolie/core/framework/skills/fw-code-explain/SKILL.md +163 -0
- package/.koolie/core/framework/skills/fw-code-explain/TESTS.md +11 -0
- package/.koolie/core/framework/skills/fw-docs-update/CHANGELOG.md +10 -0
- package/.koolie/core/framework/skills/fw-docs-update/EXAMPLES.md +59 -0
- package/.koolie/core/framework/skills/fw-docs-update/SKILL.md +160 -0
- package/.koolie/core/framework/skills/fw-docs-update/TESTS.md +12 -0
- package/.koolie/core/framework/skills/fw-error-analyze/CHANGELOG.md +10 -0
- package/.koolie/core/framework/skills/fw-error-analyze/EXAMPLES.md +67 -0
- package/.koolie/core/framework/skills/fw-error-analyze/SKILL.md +160 -0
- package/.koolie/core/framework/skills/fw-error-analyze/TESTS.md +12 -0
- package/.koolie/core/framework/skills/fw-mr-description/CHANGELOG.md +12 -0
- package/.koolie/core/framework/skills/fw-mr-description/EXAMPLES.md +69 -0
- package/.koolie/core/framework/skills/fw-mr-description/SKILL.md +170 -0
- package/.koolie/core/framework/skills/fw-mr-description/TESTS.md +12 -0
- package/.koolie/core/framework/skills/fw-overlay-pflege/CHANGELOG.md +7 -0
- package/.koolie/core/framework/skills/fw-overlay-pflege/EXAMPLES.md +48 -0
- package/.koolie/core/framework/skills/fw-overlay-pflege/SKILL.md +147 -0
- package/.koolie/core/framework/skills/fw-overlay-pflege/TESTS.md +13 -0
- package/.koolie/core/framework/skills/fw-plan/CHANGELOG.md +14 -0
- package/.koolie/core/framework/skills/fw-plan/EXAMPLES.md +69 -0
- package/.koolie/core/framework/skills/fw-plan/SKILL.md +168 -0
- package/.koolie/core/framework/skills/fw-plan/TESTS.md +14 -0
- package/.koolie/core/framework/skills/fw-refactor/CHANGELOG.md +10 -0
- package/.koolie/core/framework/skills/fw-refactor/EXAMPLES.md +70 -0
- package/.koolie/core/framework/skills/fw-refactor/SKILL.md +173 -0
- package/.koolie/core/framework/skills/fw-refactor/TESTS.md +14 -0
- package/.koolie/core/framework/skills/fw-repo-analyze/CHANGELOG.md +10 -0
- package/.koolie/core/framework/skills/fw-repo-analyze/EXAMPLES.md +52 -0
- package/.koolie/core/framework/skills/fw-repo-analyze/SKILL.md +149 -0
- package/.koolie/core/framework/skills/fw-repo-analyze/TESTS.md +11 -0
- package/.koolie/core/framework/skills/fw-review-support/CHANGELOG.md +12 -0
- package/.koolie/core/framework/skills/fw-review-support/EXAMPLES.md +69 -0
- package/.koolie/core/framework/skills/fw-review-support/SKILL.md +179 -0
- package/.koolie/core/framework/skills/fw-review-support/TESTS.md +13 -0
- package/.koolie/core/framework/skills/fw-tests/CHANGELOG.md +9 -0
- package/.koolie/core/framework/skills/fw-tests/EXAMPLES.md +65 -0
- package/.koolie/core/framework/skills/fw-tests/SKILL.md +169 -0
- package/.koolie/core/framework/skills/fw-tests/TESTS.md +12 -0
- package/.koolie/core/framework/tech-packs/README.md +15 -0
- package/.koolie/core/framework/tech-packs/_template/TECH_PACK.md +61 -0
- package/.koolie/core/governance/ADOPTION_REGISTRY.md +89 -0
- package/.koolie/core/governance/CHANGE_REQUEST_TEMPLATE.md +60 -0
- package/.koolie/core/governance/DECISION_LOG.md +779 -0
- package/.koolie/core/governance/EXCEPTION_PROCESS.md +31 -0
- package/.koolie/core/governance/FEEDBACK_PROCESS.md +34 -0
- package/.koolie/core/governance/FRAMEWORK_DEV_PROFILE.md +135 -0
- package/.koolie/core/governance/INCIDENT_HANDLING.md +47 -0
- package/.koolie/core/governance/PRIORITY_HIERARCHY.md +61 -0
- package/.koolie/core/governance/RACI.md +37 -0
- package/.koolie/core/governance/RELEASE_PROCESS.md +183 -0
- package/.koolie/core/governance/change-requests/CR-2026-001-definition-release-1-0-0.md +67 -0
- package/.koolie/core/governance/change-requests/CR-2026-002-client-packs.md +63 -0
- package/.koolie/core/governance/change-requests/CR-2026-003-install-client-schalter.md +70 -0
- package/.koolie/core/governance/change-requests/CR-2026-004-client-pack-claude-code.md +82 -0
- package/.koolie/core/governance/change-requests/CR-2026-005-kern-neutralisierung.md +75 -0
- package/.koolie/core/governance/change-requests/CR-2026-006-gemeinsame-skill-quelle.md +77 -0
- package/.koolie/core/governance/change-requests/CR-2026-007-geteilte-kernbestandteile.md +80 -0
- package/.koolie/core/governance/change-requests/CR-2026-008-berechtigungen-und-hooks.md +85 -0
- package/.koolie/core/governance/change-requests/CR-2026-009-umbenennung-leitwerk.md +77 -0
- package/.koolie/core/governance/change-requests/CR-2026-010-restduplikation.md +73 -0
- package/.koolie/core/governance/change-requests/CR-2026-011-hauptdokument.md +72 -0
- package/.koolie/core/governance/change-requests/CR-2026-012-schreibschutz-kernverzeichnis.md +106 -0
- package/.koolie/core/governance/change-requests/CR-2026-013-validator-blindstellen.md +128 -0
- package/.koolie/core/governance/change-requests/CR-2026-014-kurzform-langform.md +125 -0
- package/.koolie/core/governance/change-requests/CR-2026-015-versionskette.md +150 -0
- package/.koolie/core/governance/change-requests/CR-2026-016-ap2-claude-code.md +127 -0
- package/.koolie/core/governance/change-requests/CR-2026-017-ladebedingungen-claude-code.md +173 -0
- package/.koolie/core/governance/change-requests/CR-2026-018-quellenliste-claude-code.md +121 -0
- package/.koolie/core/governance/change-requests/CR-2026-019-strukturentscheidungen-fortschreiben.md +143 -0
- package/.koolie/core/governance/change-requests/CR-2026-020-akteursbezeichnung.md +118 -0
- package/.koolie/core/governance/change-requests/CR-2026-021-hook-interpreter.md +113 -0
- package/.koolie/core/governance/change-requests/CR-2026-022-artefaktversionen.md +73 -0
- package/.koolie/core/governance/change-requests/CR-2026-023-shell-lesesperre.md +128 -0
- package/.koolie/core/governance/change-requests/CR-2026-024-clientbindungen.md +78 -0
- package/.koolie/core/governance/change-requests/CR-2026-025-betriebsmodi.md +110 -0
- package/.koolie/core/governance/change-requests/CR-2026-026-fail-closed.md +134 -0
- package/.koolie/core/governance/change-requests/CR-2026-027-zeichenlimit-einstufung.md +105 -0
- package/.koolie/core/governance/change-requests/CR-2026-028-berechtigungsmodi.md +130 -0
- package/.koolie/core/governance/change-requests/CR-2026-029-hook-ablageort.md +115 -0
- package/.koolie/core/governance/change-requests/CR-2026-030-lesende-werkzeuge.md +143 -0
- package/.koolie/core/governance/change-requests/CR-2026-031-regelquellen-ausserhalb.md +182 -0
- package/.koolie/core/governance/change-requests/CR-2026-032-fremde-skill-ablage.md +151 -0
- package/.koolie/core/governance/change-requests/CR-2026-033-modusabhaengige-durchsetzung.md +131 -0
- package/.koolie/core/governance/change-requests/CR-2026-034-nachweisbedingungen.md +116 -0
- package/.koolie/core/governance/change-requests/CR-2026-035-readme-in-der-regelablage.md +115 -0
- package/.koolie/core/governance/change-requests/CR-2026-036-ortsangaben-hook-konfiguration.md +108 -0
- package/.koolie/core/governance/change-requests/CR-2026-037-meldender-hook-clientgebunden.md +133 -0
- package/.koolie/core/governance/change-requests/CR-2026-038-importsteuerung.md +159 -0
- package/.koolie/core/governance/change-requests/CR-2026-039-normative-saetze-in-kommentaren.md +124 -0
- package/.koolie/core/governance/change-requests/CR-2026-040-erh01-ist-clientgebunden.md +115 -0
- package/.koolie/core/governance/change-requests/CR-2026-041-s5-nicht-abbildbar.md +128 -0
- package/.koolie/core/governance/change-requests/CR-2026-042-abwesenheitsnachweis-suchwerkzeug.md +102 -0
- package/.koolie/core/governance/change-requests/CR-2026-043-validator-gibt-trefferwerte-aus.md +135 -0
- package/.koolie/core/governance/change-requests/CR-2026-044-aktivierungspruefung-clientgebunden.md +112 -0
- package/.koolie/core/governance/change-requests/CR-2026-045-update-verliert-die-clientwahl.md +116 -0
- package/.koolie/core/governance/change-requests/CR-2026-046-erstinstallation-ueberschreibt-projektdatei.md +125 -0
- package/.koolie/core/governance/change-requests/CR-2026-047-zusagen-je-zugriffskanal.md +133 -0
- package/.koolie/core/governance/change-requests/CR-2026-048-modusgrenze-ohne-durchsetzung.md +137 -0
- package/.koolie/core/governance/change-requests/CR-2026-049-sondenlauf-kodierungsabhaengig.md +126 -0
- package/.koolie/core/governance/change-requests/CR-2026-050-allowed-tools-und-verworfene-permissions.md +110 -0
- package/.koolie/core/governance/change-requests/CR-2026-051-quellenkarte-und-ueberholter-stand.md +110 -0
- package/.koolie/core/governance/change-requests/CR-2026-052-drei-regelkonflikte.md +166 -0
- package/.koolie/core/governance/change-requests/CR-2026-053-lesesperre-und-entwicklungsprofil.md +144 -0
- package/.koolie/core/governance/change-requests/CR-2026-054-aktivierung-verlangt-aktivitaet.md +124 -0
- package/.koolie/core/governance/change-requests/CR-2026-055-domain-ausnahme-ohne-mechanismus.md +173 -0
- package/.koolie/core/governance/change-requests/CR-2026-056-eingabeschema-und-pfadidentitaet.md +245 -0
- package/.koolie/core/governance/change-requests/CR-2026-057-disallowed-tools-und-s3.md +148 -0
- package/.koolie/core/governance/change-requests/CR-2026-058-unteragent-reichweite.md +203 -0
- package/.koolie/core/governance/change-requests/CR-2026-059-unteragent-tiefe-und-widerspruch.md +125 -0
- package/.koolie/core/governance/change-requests/CR-2026-060-stumme-brueche.md +170 -0
- package/.koolie/core/governance/change-requests/CR-2026-061-berechtigungsdatei-ohne-pruefung.md +169 -0
- package/.koolie/core/governance/change-requests/CR-2026-062-werkzeugabbildung-des-frontmatters.md +178 -0
- package/.koolie/core/governance/change-requests/CR-2026-063-skillaufruf-ohne-freigabe.md +207 -0
- package/.koolie/core/governance/change-requests/CR-2026-064-pruefregister-nicht-nachgezaehlt.md +141 -0
- package/.koolie/core/governance/change-requests/CR-2026-065-devin-suchwerkzeuge-erhoben.md +170 -0
- package/.koolie/core/governance/change-requests/CR-2026-066-schlitzdeckung-ohne-abgleich.md +153 -0
- package/.koolie/core/governance/change-requests/CR-2026-067-hookblock-und-praeparationsregister.md +140 -0
- package/.koolie/core/governance/change-requests/CR-2026-068-sondenlauf-nebenlaeufig.md +106 -0
- package/.koolie/core/governance/change-requests/CR-2026-069-bytecode-des-kerns.md +108 -0
- package/.koolie/core/governance/change-requests/CR-2026-070-d11-zaehler.md +114 -0
- package/.koolie/core/governance/change-requests/CR-2026-071-strukturentscheidungen-bestaetigen.md +322 -0
- package/.koolie/core/governance/change-requests/CR-2026-072-modulstatus-heben.md +315 -0
- package/.koolie/core/governance/change-requests/CR-2026-073-nicht-skill-traeger-heben.md +246 -0
- package/.koolie/core/governance/change-requests/CR-2026-074-restliche-nicht-skill-traeger-heben.md +271 -0
- package/.koolie/core/governance/change-requests/CR-2026-075-ap2-zielversion-devin-desktop.md +335 -0
- package/.koolie/core/governance/change-requests/CR-2026-076-erster-sitzungstest.md +455 -0
- package/.koolie/core/governance/change-requests/CR-2026-077-sitzungstest-schranken.md +425 -0
- package/.koolie/core/governance/change-requests/CR-2026-078-planung-nach-1-0-0.md +294 -0
- package/.koolie/core/governance/change-requests/CR-2026-079-umbenennung-vorziehen.md +233 -0
- package/.koolie/core/governance/change-requests/CR-2026-080-clientbindung-des-kerns.md +321 -0
- package/.koolie/core/governance/change-requests/CR-2026-081-produktnamen-im-kern.md +297 -0
- package/.koolie/core/governance/change-requests/CR-2026-082-sitzungstest-pi-ds-2.md +145 -0
- package/.koolie/core/governance/change-requests/CR-2026-083-sitzungstest-ne-sc.md +300 -0
- package/.koolie/core/governance/change-requests/CR-2026-084-trockenlauf-gegen-den-committeten-stand.md +117 -0
- package/.koolie/core/governance/change-requests/CR-2026-085-vorbedingungen-sitzungstest-5.md +182 -0
- package/.koolie/core/governance/change-requests/CR-2026-086-grenzfaelle-gegen-die-fassungen.md +164 -0
- package/.koolie/core/governance/change-requests/CR-2026-087-produktbeobachtung-quellenliste.md +206 -0
- package/.koolie/core/governance/change-requests/CR-2026-088-vorbedingungen-testblaetter.md +127 -0
- package/.koolie/core/governance/change-requests/CR-2026-089-herrichtung-uebungsrepositorium.md +226 -0
- package/.koolie/core/governance/change-requests/CR-2026-090-vorbedingungen-sitzungstest-5-zweiter-durchgang.md +255 -0
- package/.koolie/core/governance/change-requests/CR-2026-091-sitzungstest-5.md +163 -0
- package/.koolie/core/governance/change-requests/CR-2026-092-pruefmittelwort-und-buendelschnitt.md +226 -0
- package/.koolie/core/governance/change-requests/CR-2026-093-sechzehnte-praeparation.md +151 -0
- package/.koolie/core/governance/change-requests/CR-2026-094-testblaetter-buendel-1.md +113 -0
- package/.koolie/core/governance/change-requests/CR-2026-095-pruefapparat-filter.md +65 -0
- package/.koolie/core/governance/change-requests/CR-2026-096-vorbedingungen-buendel-2.md +225 -0
- package/.koolie/core/governance/change-requests/CR-2026-097-testblaetter-buendel-2.md +162 -0
- package/.koolie/core/governance/change-requests/CR-2026-098-anforderungen-auslieferung.md +93 -0
- package/.koolie/core/governance/change-requests/CR-2026-099-k74-und-vorbedingungen-buendel-3.md +119 -0
- package/.koolie/core/governance/change-requests/CR-2026-100-testblaetter-buendel-3.md +120 -0
- package/.koolie/core/governance/change-requests/CR-2026-101-k77-eigener-posten.md +165 -0
- package/.koolie/core/governance/change-requests/CR-2026-102-k77-entschieden.md +118 -0
- package/.koolie/core/governance/change-requests/CR-2026-103-vorbedingungen-buendel-4.md +76 -0
- package/.koolie/core/governance/change-requests/CR-2026-104-herrichtung-buendel-4.md +82 -0
- package/.koolie/core/governance/change-requests/CR-2026-105-messapparat-buendel-4.md +227 -0
- package/.koolie/core/governance/change-requests/CR-2026-106-uebergabe-einchecken.md +91 -0
- package/.koolie/core/governance/change-requests/CR-2026-107-uebergabe-im-release-commit.md +111 -0
- package/.koolie/core/governance/change-requests/CR-2026-108-testblaetter-buendel-4.md +118 -0
- package/.koolie/core/governance/change-requests/CR-2026-109-berichtsweg-des-aufraeumers.md +108 -0
- package/.koolie/core/governance/change-requests/CR-2026-110-vorbedingungen-des-nachlaufs.md +184 -0
- package/.koolie/core/governance/change-requests/CR-2026-111-der-apparat-auf-dem-weg-der-wiederaufnahme.md +127 -0
- package/.koolie/core/governance/change-requests/CR-2026-112-der-arbeitsplatz-im-kern.md +103 -0
- package/.koolie/core/governance/change-requests/CR-2026-113-nachlauf-buendel-4.md +103 -0
- package/.koolie/core/governance/change-requests/CR-2026-114-vorbedingungen-buendel-5.md +317 -0
- package/.koolie/core/governance/change-requests/CR-2026-115-herrichtung-buendel-5.md +244 -0
- package/.koolie/core/governance/change-requests/CR-2026-116-messtag-buendel-5.md +178 -0
- package/.koolie/core/governance/change-requests/CR-2026-117-sammelzellen-zentraler-katalog.md +251 -0
- package/.koolie/core/governance/change-requests/CR-2026-118-quellenzuordnung-matrixzeilen.md +115 -0
- package/.koolie/core/governance/change-requests/CR-2026-119-umbenennung-koolie.md +204 -0
- package/.koolie/core/governance/change-requests/CR-2026-120-ap2-rest-devin-desktop.md +96 -0
- package/.koolie/core/governance/change-requests/CR-2026-121-verify-marker-abschaffen.md +185 -0
- package/.koolie/core/governance/change-requests/CR-2026-122-umbenennung-koolie-lauf.md +131 -0
- package/.koolie/core/governance/change-requests/CR-2026-123-vortrag-und-namensabsatz.md +170 -0
- package/.koolie/core/governance/change-requests/CR-2026-124-hauptdokument-ap11.md +237 -0
- package/.koolie/core/governance/change-requests/CR-2026-125-word-fassung-und-blinder-fleck.md +204 -0
- package/.koolie/core/governance/change-requests/CR-2026-126-lizenz-gpl3.md +112 -0
- package/.koolie/core/governance/change-requests/CR-2026-127-gegenzeichnung-rollenfrage.md +96 -0
- package/.koolie/core/governance/change-requests/CR-2026-128-freigabelauf-1.0.0.md +278 -0
- package/.koolie/core/governance/change-requests/CR-2026-129-archiv-zeilenenden.md +90 -0
- package/.koolie/core/governance/change-requests/CR-2026-130-reihenfolge-des-hebens.md +204 -0
- package/.koolie/core/governance/change-requests/CR-2026-131-chronik-und-vorlage.md +194 -0
- package/.koolie/core/governance/change-requests/CR-2026-132-erhebung-openai-codex.md +185 -0
- package/.koolie/core/governance/change-requests/CR-2026-133-bau-openai-codex.md +97 -0
- package/.koolie/core/governance/change-requests/CR-2026-134-uebergabe-lokal.md +117 -0
- package/.koolie/core/governance/change-requests/CR-2026-135-pfadlisten-nul-getrennt.md +139 -0
- package/.koolie/core/governance/change-requests/CR-2026-136-overlay-werte-einordnung.md +156 -0
- package/.koolie/core/governance/change-requests/CR-2026-137-kopierweg-kern.md +144 -0
- package/.koolie/core/governance/change-requests/CR-2026-138-overlay-muster-general.md +118 -0
- package/.koolie/core/governance/change-requests/CR-2026-139-overlay-muster-dokumente.md +105 -0
- package/.koolie/core/governance/change-requests/CR-2026-140-installer-je-zielsystem.md +120 -0
- package/.koolie/core/governance/change-requests/CR-2026-141-lieferumfang.md +123 -0
- package/.koolie/core/governance/change-requests/CR-2026-142-dokumentationsstandard.md +90 -0
- package/.koolie/core/governance/change-requests/CR-2026-143-klasse-b-core-laufzeit.md +89 -0
- package/.koolie/core/governance/change-requests/CR-2026-144-klasse-b-governance.md +90 -0
- package/.koolie/core/governance/change-requests/CR-2026-145-klasse-b-skills.md +81 -0
- package/.koolie/core/governance/change-requests/CR-2026-146-code-pack-posten.md +84 -0
- package/.koolie/core/governance/change-requests/CR-2026-147-regel-register-posten.md +78 -0
- package/.koolie/core/governance/change-requests/CR-2026-148-mehrprojekt-tokenlast.md +70 -0
- package/.koolie/core/governance/change-requests/CR-2026-149-regelablage-pfadtoken.md +71 -0
- package/.koolie/core/governance/change-requests/CR-2026-150-client-pack-kiro.md +76 -0
- package/.koolie/core/governance/change-requests/CR-2026-151-skill-anweisungen.md +71 -0
- package/.koolie/core/governance/change-requests/CR-2026-152-testblaetter-modellwechsel.md +78 -0
- package/.koolie/core/governance/change-requests/CR-2026-153-attributionszeile.md +88 -0
- package/.koolie/core/governance/change-requests/CR-2026-154-auffindbarkeit.md +102 -0
- package/.koolie/core/governance/change-requests/CR-2026-155-client-pack-cursor.md +80 -0
- package/.koolie/core/governance/change-requests/CR-2026-156-mandat-und-reibung.md +100 -0
- package/.koolie/core/governance/change-requests/CR-2026-157-mcp-anbindung.md +93 -0
- package/.koolie/core/governance/change-requests/CR-2026-158-registerpflege.md +69 -0
- package/.koolie/core/governance/change-requests/CR-2026-159-powershell.md +49 -0
- package/.koolie/core/governance/change-requests/CR-2026-160-messapparat.md +59 -0
- package/.koolie/core/governance/change-requests/CR-2026-161-pruefwerkzeuge.md +52 -0
- package/.koolie/core/governance/change-requests/CR-2026-162-schutzschicht.md +65 -0
- package/.koolie/core/governance/change-requests/CR-2026-163-pfadsemantik.md +61 -0
- package/.koolie/core/governance/change-requests/CR-2026-164-modi-ausnahmen.md +65 -0
- package/.koolie/core/governance/change-requests/CR-2026-165-installer-banner.md +406 -0
- package/.koolie/core/governance/change-requests/CR-2026-166-nachlauf-aufzeichnungen.md +59 -0
- package/.koolie/core/governance/change-requests/CR-2026-167-einsatzarchitektur.md +60 -0
- package/.koolie/core/governance/change-requests/CR-2026-168-paketquellen.md +64 -0
- package/.koolie/core/governance/change-requests/CR-2026-169-modusbindung-messfragen.md +58 -0
- package/.koolie/core/governance/change-requests/CR-2026-170-erste-veroeffentlichung.md +62 -0
- package/.koolie/core/governance/change-requests/CR-2026-171-befehl-im-projektverzeichnis.md +57 -0
- package/.koolie/core/governance/change-requests/CR-2026-172-auftritt-npm-suche.md +58 -0
- package/.koolie/core/install.py +2402 -0
- package/.koolie/core/install_dialog.py +227 -0
- package/.koolie/core/koexistenz.py +112 -0
- package/.koolie/core/mandat.py +605 -0
- package/.koolie/core/onboarding/COMPLETION_CRITERIA.md +37 -0
- package/.koolie/core/onboarding/GUIDE.md +103 -0
- package/.koolie/core/onboarding/KNOWLEDGE_CHECK.md +48 -0
- package/.koolie/core/onboarding/MENTOR_CHECKLIST.md +40 -0
- package/.koolie/core/onboarding/QUICKSTART.md +50 -0
- package/.koolie/core/onboarding/REFERENCE.md +69 -0
- package/.koolie/core/onboarding/exercises/EXERCISES.md +78 -0
- package/.koolie/core/onboarding/exercises/README.md +120 -0
- package/.koolie/core/pilot/METRICS.md +59 -0
- package/.koolie/core/pilot/PILOT_CONCEPT.md +42 -0
- package/.koolie/core/prompts/01-understand-codebase.md +99 -0
- package/.koolie/core/prompts/02-impact-analysis.md +104 -0
- package/.koolie/core/prompts/03-implementation-planning.md +102 -0
- package/.koolie/core/prompts/04-code-generation.md +100 -0
- package/.koolie/core/prompts/05-test-generation.md +103 -0
- package/.koolie/core/prompts/06-refactoring.md +102 -0
- package/.koolie/core/prompts/07-debugging.md +97 -0
- package/.koolie/core/prompts/08-security-review.md +92 -0
- package/.koolie/core/prompts/09-performance-analysis.md +89 -0
- package/.koolie/core/prompts/10-documentation.md +91 -0
- package/.koolie/core/prompts/11-merge-request-review.md +94 -0
- package/.koolie/core/prompts/12-developer-training.md +90 -0
- package/.koolie/core/prompts/README.md +88 -0
- package/.koolie/core/templates/MR_AI_DISCLOSURE.md +37 -0
- package/.koolie/core/templates/PLAN_TEMPLATE.md +57 -0
- package/.koolie/core/templates/SKILL_TEMPLATE.md +159 -0
- package/.koolie/core/templates/project-overlay/OVERLAY.md +315 -0
- package/.koolie/core/templates/project-overlay/documents/README.md +43 -0
- package/.koolie/core/templates/project-overlay/documents/ai-governance/.gitkeep.md +3 -0
- package/.koolie/core/templates/project-overlay/documents/ai-process-model/.gitkeep.md +3 -0
- package/.koolie/core/templates/project-overlay/documents/architecture/.gitkeep.md +3 -0
- package/.koolie/core/templates/project-overlay/documents/architecture/decisions/README.md +3 -0
- package/.koolie/core/templates/project-overlay/documents/branching-strategy/.gitkeep.md +3 -0
- package/.koolie/core/templates/project-overlay/documents/coding-guidelines/.gitkeep.md +3 -0
- package/.koolie/core/templates/project-overlay/documents/definition-of-done/.gitkeep.md +3 -0
- package/.koolie/core/templates/project-overlay/documents/definition-of-ready/.gitkeep.md +3 -0
- package/.koolie/core/templates/project-overlay/documents/deployment/.gitkeep.md +3 -0
- package/.koolie/core/templates/project-overlay/documents/glossary/.gitkeep.md +3 -0
- package/.koolie/core/templates/project-overlay/documents/quality/.gitkeep.md +3 -0
- package/.koolie/core/templates/project-overlay/documents/roadmap/.gitkeep.md +3 -0
- package/.koolie/core/templates/project-overlay/documents/roles/.gitkeep.md +3 -0
- package/.koolie/core/templates/project-overlay/documents/security/.gitkeep.md +3 -0
- package/.koolie/core/templates/project-overlay/exceptions/EXCEPTIONS.md +9 -0
- package/.koolie/core/templates/project-overlay/forbidden-terms.txt +8 -0
- package/.koolie/core/templates/project-overlay/overlay-manifest.yaml +73 -0
- package/.koolie/core/templates/rules/21-overlay-TEMPLATE.md.template +28 -0
- package/.koolie/core/templates/rules/40-tech-TEMPLATE.md.template +33 -0
- package/.koolie/core/tests/EDGE_CASES.md +67 -0
- package/.koolie/core/tests/TEST_CATALOG.md +170 -0
- package/.koolie/core/tests/erhebungen/README.md +326 -0
- package/.koolie/core/tests/erhebungen/ablage.py +357 -0
- package/.koolie/core/tests/erhebungen/apparat/__init__.py +22 -0
- package/.koolie/core/tests/erhebungen/apparat/baum.py +214 -0
- package/.koolie/core/tests/erhebungen/apparat/belege.py +91 -0
- package/.koolie/core/tests/erhebungen/apparat/clients.py +321 -0
- package/.koolie/core/tests/erhebungen/apparat/freigabe.py +74 -0
- package/.koolie/core/tests/erhebungen/apparat/kontingent.py +64 -0
- package/.koolie/core/tests/erhebungen/apparat/laeufer.py +155 -0
- package/.koolie/core/tests/erhebungen/apparat/reihe.py +202 -0
- package/.koolie/core/tests/erhebungen/apparat/selbsttest.py +280 -0
- package/.koolie/core/tests/erhebungen/apparat/stand.py +30 -0
- package/.koolie/core/tests/erhebungen/apparat/vorpruefung.py +70 -0
- package/.koolie/core/tests/erhebungen/auswerten-b4.py +468 -0
- package/.koolie/core/tests/erhebungen/auswerten-b5.py +517 -0
- package/.koolie/core/tests/erhebungen/auswerten-dd.py +172 -0
- package/.koolie/core/tests/erhebungen/baeume-b4.py +334 -0
- package/.koolie/core/tests/erhebungen/baeume-b5.py +339 -0
- package/.koolie/core/tests/erhebungen/baeume_loeschen.py +138 -0
- package/.koolie/core/tests/erhebungen/cc-overlay-fuellen.py +277 -0
- package/.koolie/core/tests/erhebungen/dossier-b4.py +178 -0
- package/.koolie/core/tests/erhebungen/dossier-b5.py +202 -0
- package/.koolie/core/tests/erhebungen/historie-bauen-b4.py +642 -0
- package/.koolie/core/tests/erhebungen/k-bauen-b3.py +841 -0
- package/.koolie/core/tests/erhebungen/lauf-dd.py +146 -0
- package/.koolie/core/tests/erhebungen/lauf.py +114 -0
- package/.koolie/core/tests/erhebungen/mcp-waechter.py +278 -0
- package/.koolie/core/tests/erhebungen/messbaum-schnitt.py +256 -0
- package/.koolie/core/tests/erhebungen/messen.py +72 -0
- package/.koolie/core/tests/erhebungen/node-waechter.py +74 -0
- package/.koolie/core/tests/erhebungen/packaktivierung.py +403 -0
- package/.koolie/core/tests/erhebungen/prompts-schreiben-b4.py +210 -0
- package/.koolie/core/tests/erhebungen/prompts-schreiben-b5.py +251 -0
- package/.koolie/core/tests/erhebungen/reihe-b4.py +171 -0
- package/.koolie/core/tests/erhebungen/reihe-b5.py +172 -0
- package/.koolie/core/tests/erhebungen/stand-b4.py +135 -0
- package/.koolie/core/tests/erhebungen/stand-b5.py +137 -0
- package/.koolie/core/tests/erhebungen/trust-b4.py +56 -0
- package/.koolie/core/tests/erhebungen/trust-b5.py +56 -0
- package/.koolie/core/tests/erhebungen/turn2-schreiben-b4.py +105 -0
- package/.koolie/core/tests/erhebungen/umgebungen-bauen-b4.py +377 -0
- package/.koolie/core/tests/erhebungen/umgebungen-bauen-b5.py +363 -0
- package/.koolie/core/tests/erhebungen/zaehlen46.py +74 -0
- package/.koolie/core/tests/erhebungen/zustand-b4.py +82 -0
- package/.koolie/core/tests/erhebungen/zustand-b5.py +82 -0
- package/.koolie/core/tests/protocols/2026-09-10-AP2-claude-code-wirkungsnachweise.md +194 -0
- package/.koolie/core/tests/protocols/2026-09-10-AP2-claude-code.md +468 -0
- package/.koolie/core/tests/protocols/2026-09-10-CR-2026-020-akteursbezeichnung.md +99 -0
- package/.koolie/core/tests/protocols/2026-09-10-CR-2026-021-hook-interpreter.md +138 -0
- package/.koolie/core/tests/protocols/2026-09-10-CR-2026-022-artefaktversionen.md +87 -0
- package/.koolie/core/tests/protocols/2026-09-10-CR-2026-023-shell-lesesperre.md +135 -0
- package/.koolie/core/tests/protocols/2026-09-10-CR-2026-024-clientbindungen.md +98 -0
- package/.koolie/core/tests/protocols/2026-09-10-FW-DS-03.md +90 -0
- package/.koolie/core/tests/protocols/2026-09-10-FW-KO-01.md +105 -0
- package/.koolie/core/tests/protocols/2026-09-10-FW-KO-02.md +123 -0
- package/.koolie/core/tests/protocols/2026-09-10-FW-KO-04.md +73 -0
- package/.koolie/core/tests/protocols/2026-09-10-FW-RE-02.md +99 -0
- package/.koolie/core/tests/protocols/2026-09-10-FW-VN-01-wiederholung.md +108 -0
- package/.koolie/core/tests/protocols/2026-09-10-FW-VN-01.md +249 -0
- package/.koolie/core/tests/protocols/2026-09-10-FW-ZA-05.md +99 -0
- package/.koolie/core/tests/protocols/2026-09-11-AP2-devin-desktop.md +257 -0
- package/.koolie/core/tests/protocols/2026-09-11-CR-2026-026-fail-closed.md +113 -0
- package/.koolie/core/tests/protocols/2026-09-11-erhebungen-K21-K26.md +243 -0
- package/.koolie/core/tests/protocols/2026-09-11-wirkungsnachweise-0.26.0.md +101 -0
- package/.koolie/core/tests/protocols/2026-09-12-B01-allowed-tools.md +152 -0
- package/.koolie/core/tests/protocols/2026-09-12-B04-B05-gegenpruefung.md +204 -0
- package/.koolie/core/tests/protocols/2026-09-12-erhebungen-K28-S5-B9-bypass.md +268 -0
- package/.koolie/core/tests/protocols/2026-09-12-mehrprojekt-arbeitsbereich.md +154 -0
- package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.26.1.md +126 -0
- package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.27.0.md +114 -0
- package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.28.0.md +129 -0
- package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.29.0.md +121 -0
- package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.30.0.md +112 -0
- package/.koolie/core/tests/protocols/2026-09-12-wirkungsnachweise-0.31.0.md +107 -0
- package/.koolie/core/tests/protocols/2026-09-13-B06-gegenpruefung.md +370 -0
- package/.koolie/core/tests/protocols/2026-09-13-B07-B09-gegenpruefung.md +211 -0
- package/.koolie/core/tests/protocols/2026-09-13-B08-B11-gegenpruefung.md +179 -0
- package/.koolie/core/tests/protocols/2026-09-13-erhebung-disallowed-tools.md +147 -0
- package/.koolie/core/tests/protocols/2026-09-13-erhebung-unteragent-tiefe.md +139 -0
- package/.koolie/core/tests/protocols/2026-09-13-erhebung-unteragent.md +214 -0
- package/.koolie/core/tests/protocols/2026-09-13-gegenpruefung-berechtigungsdatei.md +253 -0
- package/.koolie/core/tests/protocols/2026-09-13-gegenpruefung-stumme-brueche.md +202 -0
- package/.koolie/core/tests/protocols/2026-09-13-gegenpruefung-werkzeugabbildung.md +219 -0
- package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.32.0.md +133 -0
- package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.33.0.md +169 -0
- package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.34.0.md +187 -0
- package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.35.0.md +187 -0
- package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.36.0.md +137 -0
- package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.37.0.md +112 -0
- package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.38.0.md +154 -0
- package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.39.0.md +188 -0
- package/.koolie/core/tests/protocols/2026-09-13-wirkungsnachweise-0.40.0.md +214 -0
- package/.koolie/core/tests/protocols/2026-09-14-erhebung-devin-werkzeuge.md +267 -0
- package/.koolie/core/tests/protocols/2026-09-14-erhebung-skillaufruf.md +238 -0
- package/.koolie/core/tests/protocols/2026-09-14-gegenpruefung-pruefregister.md +156 -0
- package/.koolie/core/tests/protocols/2026-09-14-gegenpruefung-schlitzdeckung.md +206 -0
- package/.koolie/core/tests/protocols/2026-09-14-gegenpruefung-skillwahl.md +127 -0
- package/.koolie/core/tests/protocols/2026-09-14-migrationslauf-pilot.md +134 -0
- package/.koolie/core/tests/protocols/2026-09-14-wirkungsnachweise-0.41.0.md +175 -0
- package/.koolie/core/tests/protocols/2026-09-14-wirkungsnachweise-0.42.0.md +180 -0
- package/.koolie/core/tests/protocols/2026-09-14-wirkungsnachweise-0.43.0.md +165 -0
- package/.koolie/core/tests/protocols/2026-09-14-wirkungsnachweise-0.44.0.md +130 -0
- package/.koolie/core/tests/protocols/2026-09-15-gegenpruefung-d11-zaehlregeln.md +311 -0
- package/.koolie/core/tests/protocols/2026-09-15-gegenpruefung-modulstatus.md +524 -0
- package/.koolie/core/tests/protocols/2026-09-15-gegenpruefung-nicht-skill-traeger.md +225 -0
- package/.koolie/core/tests/protocols/2026-09-15-gegenpruefung-restliche-nicht-skill-traeger.md +345 -0
- package/.koolie/core/tests/protocols/2026-09-15-gegenpruefung-strukturentscheidungen.md +392 -0
- package/.koolie/core/tests/protocols/2026-09-15-herrichtung-uebungsrepositorium.md +213 -0
- package/.koolie/core/tests/protocols/2026-09-15-migrationslauf-pilot-0.46.0.md +143 -0
- package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.45.0.md +127 -0
- package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.46.0.md +193 -0
- package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.47.0.md +149 -0
- package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.49.0.md +202 -0
- package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.50.0.md +183 -0
- package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.51.0.md +202 -0
- package/.koolie/core/tests/protocols/2026-09-15-wirkungsnachweise-0.52.0.md +168 -0
- package/.koolie/core/tests/protocols/2026-09-16-AP2-zielversion-devin-desktop.md +231 -0
- package/.koolie/core/tests/protocols/2026-09-16-wirkungsnachweise-0.53.0.md +350 -0
- package/.koolie/core/tests/protocols/2026-09-17-nachtrag-migrationshinweis-0.54.1.md +121 -0
- package/.koolie/core/tests/protocols/2026-09-17-sitzungstest-pi-ds.md +523 -0
- package/.koolie/core/tests/protocols/2026-09-17-sitzungstest-schranken.md +433 -0
- package/.koolie/core/tests/protocols/2026-09-17-wirkungsnachweise-0.54.0.md +159 -0
- package/.koolie/core/tests/protocols/2026-09-18-FW-AK-01.md +442 -0
- package/.koolie/core/tests/protocols/2026-09-18-FW-KO-05.md +231 -0
- package/.koolie/core/tests/protocols/2026-09-18-herrichtung-uebungsrepositorium.md +273 -0
- package/.koolie/core/tests/protocols/2026-09-18-nachtrag-preis-umbenennung-0.56.1.md +102 -0
- package/.koolie/core/tests/protocols/2026-09-18-sitzungstest-5.md +349 -0
- package/.koolie/core/tests/protocols/2026-09-18-sitzungstest-ne-sc.md +430 -0
- package/.koolie/core/tests/protocols/2026-09-18-sitzungstest-pi-ds-2.md +499 -0
- package/.koolie/core/tests/protocols/2026-09-18-vorbedingungen-sitzungstest-5-zweiter-durchgang.md +170 -0
- package/.koolie/core/tests/protocols/2026-09-18-vorbedingungen-testblaetter.md +184 -0
- package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.55.0.md +202 -0
- package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.56.0.md +135 -0
- package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.56.2.md +154 -0
- package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.57.0.md +228 -0
- package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.57.1.md +262 -0
- package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.58.0.md +135 -0
- package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.59.0.md +150 -0
- package/.koolie/core/tests/protocols/2026-09-18-wirkungsnachweise-0.60.0.md +340 -0
- package/.koolie/core/tests/protocols/2026-09-19-herrichtung-buendel-4.md +235 -0
- package/.koolie/core/tests/protocols/2026-09-19-k77-zurechenbarkeit.md +236 -0
- package/.koolie/core/tests/protocols/2026-09-19-pruefapparat-filter.md +50 -0
- package/.koolie/core/tests/protocols/2026-09-19-pruefmittelwort-und-buendelschnitt.md +239 -0
- package/.koolie/core/tests/protocols/2026-09-19-sechzehnte-praeparation.md +135 -0
- package/.koolie/core/tests/protocols/2026-09-19-testblaetter-buendel-1.md +250 -0
- package/.koolie/core/tests/protocols/2026-09-19-testblaetter-buendel-2.md +229 -0
- package/.koolie/core/tests/protocols/2026-09-19-testblaetter-buendel-3.md +293 -0
- package/.koolie/core/tests/protocols/2026-09-19-vorbedingungen-buendel-2.md +236 -0
- package/.koolie/core/tests/protocols/2026-09-19-vorbedingungen-buendel-3.md +253 -0
- package/.koolie/core/tests/protocols/2026-09-19-vorbedingungen-buendel-4.md +138 -0
- package/.koolie/core/tests/protocols/2026-09-20-messapparat-buendel-4.md +433 -0
- package/.koolie/core/tests/protocols/2026-09-20-testblaetter-buendel-4.md +321 -0
- package/.koolie/core/tests/protocols/2026-09-20-uebergabe-im-release-commit.md +146 -0
- package/.koolie/core/tests/protocols/2026-09-20-vorbedingungen-nachlauf-b4.md +259 -0
- package/.koolie/core/tests/protocols/2026-09-21-arbeitsplatz-im-kern.md +127 -0
- package/.koolie/core/tests/protocols/2026-09-21-nachlauf-buendel-4.md +157 -0
- package/.koolie/core/tests/protocols/2026-09-21-vorbedingungen-buendel-5.md +247 -0
- package/.koolie/core/tests/protocols/2026-09-21-wiederaufnahme-nachlauf-b4.md +190 -0
- package/.koolie/core/tests/protocols/2026-09-22-ap2-rest-devin-desktop.md +614 -0
- package/.koolie/core/tests/protocols/2026-09-22-hauptdokument-ap11.md +443 -0
- package/.koolie/core/tests/protocols/2026-09-22-herrichtung-buendel-5.md +224 -0
- package/.koolie/core/tests/protocols/2026-09-22-messtag-buendel-5.md +327 -0
- package/.koolie/core/tests/protocols/2026-09-22-quellenzuordnung-matrixzeilen.md +230 -0
- package/.koolie/core/tests/protocols/2026-09-22-sammelzellen-zentraler-katalog.md +354 -0
- package/.koolie/core/tests/protocols/2026-09-22-umbenennung-koolie.md +296 -0
- package/.koolie/core/tests/protocols/2026-09-22-verify-marker-abschaffen.md +283 -0
- package/.koolie/core/tests/protocols/2026-09-22-vortrag-und-name.md +261 -0
- package/.koolie/core/tests/protocols/2026-09-22-wirkungsnachweise-0.86.0.md +158 -0
- package/.koolie/core/tests/protocols/2026-09-23-archiv-zeilenenden.md +113 -0
- package/.koolie/core/tests/protocols/2026-09-23-bau-openai-codex.md +168 -0
- package/.koolie/core/tests/protocols/2026-09-23-chronik-und-vorlage.md +224 -0
- package/.koolie/core/tests/protocols/2026-09-23-erhebung-openai-codex.md +309 -0
- package/.koolie/core/tests/protocols/2026-09-23-freigabelauf-1.0.0-vorbereitung.md +119 -0
- package/.koolie/core/tests/protocols/2026-09-23-freigabelauf-1.0.0.md +150 -0
- package/.koolie/core/tests/protocols/2026-09-23-gegenzeichnung-rollenfrage.md +198 -0
- package/.koolie/core/tests/protocols/2026-09-23-reihenfolge-des-hebens.md +220 -0
- package/.koolie/core/tests/protocols/2026-09-23-word-fassung-und-blinder-fleck.md +307 -0
- package/.koolie/core/tests/protocols/2026-09-24-kopierweg-kern.md +98 -0
- package/.koolie/core/tests/protocols/2026-09-24-overlay-werte-einordnung.md +111 -0
- package/.koolie/core/tests/protocols/2026-09-24-pfadlisten-nul-getrennt.md +128 -0
- package/.koolie/core/tests/protocols/2026-09-24-uebergabe-lokal.md +85 -0
- package/.koolie/core/tests/protocols/2026-09-25-code-pack-posten.md +86 -0
- package/.koolie/core/tests/protocols/2026-09-25-dokumentationsstandard.md +101 -0
- package/.koolie/core/tests/protocols/2026-09-25-installer-je-zielsystem.md +134 -0
- package/.koolie/core/tests/protocols/2026-09-25-klasse-b-core-laufzeit.md +126 -0
- package/.koolie/core/tests/protocols/2026-09-25-klasse-b-governance.md +133 -0
- package/.koolie/core/tests/protocols/2026-09-25-klasse-b-skills.md +91 -0
- package/.koolie/core/tests/protocols/2026-09-25-lieferumfang.md +76 -0
- package/.koolie/core/tests/protocols/2026-09-25-overlay-muster-dokumente.md +107 -0
- package/.koolie/core/tests/protocols/2026-09-25-overlay-muster-general.md +100 -0
- package/.koolie/core/tests/protocols/2026-09-25-regel-register-posten.md +87 -0
- package/.koolie/core/tests/protocols/2026-09-26-attributionszeile.md +83 -0
- package/.koolie/core/tests/protocols/2026-09-26-auffindbarkeit.md +85 -0
- package/.koolie/core/tests/protocols/2026-09-26-bau-cursor.md +68 -0
- package/.koolie/core/tests/protocols/2026-09-26-bau-kiro.md +75 -0
- package/.koolie/core/tests/protocols/2026-09-26-mehrprojekt-tokenlast.md +174 -0
- package/.koolie/core/tests/protocols/2026-09-26-regelablage-pfadtoken.md +133 -0
- package/.koolie/core/tests/protocols/2026-09-26-skill-anweisungen.md +111 -0
- package/.koolie/core/tests/protocols/2026-09-26-testblaetter-modellwechsel.md +106 -0
- package/.koolie/core/tests/protocols/2026-09-27-mandat-und-reibung.md +58 -0
- package/.koolie/core/tests/protocols/2026-09-28-mcp-anbindung.md +72 -0
- package/.koolie/core/tests/protocols/2026-09-29-messapparat.md +75 -0
- package/.koolie/core/tests/protocols/2026-09-29-powershell.md +58 -0
- package/.koolie/core/tests/protocols/2026-09-29-pruefwerkzeuge.md +64 -0
- package/.koolie/core/tests/protocols/2026-09-29-registerpflege.md +228 -0
- package/.koolie/core/tests/protocols/2026-09-29-schutzschicht.md +95 -0
- package/.koolie/core/tests/protocols/2026-09-30-einsatzarchitektur.md +104 -0
- package/.koolie/core/tests/protocols/2026-09-30-modi-ausnahmen.md +77 -0
- package/.koolie/core/tests/protocols/2026-09-30-nachlauf-banner.md +85 -0
- package/.koolie/core/tests/protocols/2026-09-30-paketquellen.md +65 -0
- package/.koolie/core/tests/protocols/2026-09-30-pfadsemantik.md +79 -0
- package/.koolie/core/tests/protocols/2026-10-01-auftritt-und-suche.md +58 -0
- package/.koolie/core/tests/protocols/2026-10-01-befehl-im-projektverzeichnis.md +47 -0
- package/.koolie/core/tests/protocols/2026-10-01-erste-veroeffentlichung.md +60 -0
- package/.koolie/core/tests/protocols/2026-10-01-modusbindung-messfragen.md +107 -0
- package/.koolie/core/tests/protocols/README.md +14 -0
- package/.koolie/core/tests/scripts/hook-check-secrets.py +1307 -0
- package/.koolie/core/tests/scripts/hook-overlay-status.py +120 -0
- package/.koolie/core/tests/scripts/mermaid_renderer.py +67 -0
- package/.koolie/core/tests/scripts/overlay_status.py +130 -0
- package/.koolie/core/tests/scripts/probe-pruefungen.py +110 -0
- package/.koolie/core/tests/scripts/pruefungen/__init__.py +4 -0
- package/.koolie/core/tests/scripts/pruefungen/berechtigungen.py +1559 -0
- package/.koolie/core/tests/scripts/pruefungen/bestand.py +1433 -0
- package/.koolie/core/tests/scripts/pruefungen/dokumente.py +1262 -0
- package/.koolie/core/tests/scripts/pruefungen/gemeinsam.py +784 -0
- package/.koolie/core/tests/scripts/pruefungen/hooks.py +1188 -0
- package/.koolie/core/tests/scripts/pruefungen/overlay.py +1251 -0
- package/.koolie/core/tests/scripts/pruefungen/packs.py +1314 -0
- package/.koolie/core/tests/scripts/pruefungen/register.py +950 -0
- package/.koolie/core/tests/scripts/pruefungen/testkatalog.py +1202 -0
- package/.koolie/core/tests/scripts/pruefungen/werkzeuge.py +957 -0
- package/.koolie/core/tests/scripts/sonden/__init__.py +4 -0
- package/.koolie/core/tests/scripts/sonden/apparat.py +653 -0
- package/.koolie/core/tests/scripts/sonden/teil01_grundbestand_und_installation.py +999 -0
- package/.koolie/core/tests/scripts/sonden/teil02_packs_mandat_mcp.py +942 -0
- package/.koolie/core/tests/scripts/sonden/teil03_pruefungen_26_bis_36.py +1184 -0
- package/.koolie/core/tests/scripts/sonden/teil04_pruefungen_37_bis_45.py +1491 -0
- package/.koolie/core/tests/scripts/sonden/teil05_pruefungen_46_bis_55.py +1447 -0
- package/.koolie/core/tests/scripts/sonden/teil06_pruefungen_57_bis_65.py +739 -0
- package/.koolie/core/tests/scripts/sonden/teil07_overlay_und_lieferung.py +1014 -0
- package/.koolie/core/tests/scripts/sonden/teil08_pruefungen_66_bis_80.py +1325 -0
- package/.koolie/core/tests/scripts/sonden/teil09_pruefmittel_81_und_82.py +505 -0
- package/.koolie/core/tests/scripts/sonden/teil10_pruefungen_83_bis_95.py +1218 -0
- package/.koolie/core/tests/scripts/sonden/teil11_pruefungen_104_und_105.py +149 -0
- package/.koolie/core/tests/scripts/sonden/teil12_pruefungen_106_und_107.py +136 -0
- package/.koolie/core/tests/scripts/sonden/teil13_pfad_und_mustersemantik.py +150 -0
- package/.koolie/core/tests/scripts/sonden/teil14_modi_ausnahmen_skills.py +204 -0
- package/.koolie/core/tests/scripts/sonden/teil15_banner_und_nachlauf.py +193 -0
- package/.koolie/core/tests/scripts/sonden/teil16_koexistenz.py +114 -0
- package/.koolie/core/tests/scripts/sonden/teil17_paketquellen.py +115 -0
- package/.koolie/core/tests/scripts/sonden/teil18_modusbindung_m3_m5.py +113 -0
- package/.koolie/core/tests/scripts/validate-framework.py +1104 -0
- package/.koolie/core/tests/scripts/validate-output.py +296 -0
- package/.koolie/core/wirksamkeit.py +430 -0
- package/CONTRIBUTING.md +119 -0
- package/LICENSE +674 -0
- package/QUICKSTART.en.md +135 -0
- package/QUICKSTART.md +129 -0
- package/README.en.md +108 -0
- package/README.md +107 -0
- package/install.cmd +44 -0
- package/install.command +46 -0
- package/package.json +21 -0
- package/paketquellen/README.md +41 -0
- package/paketquellen/bauen.py +411 -0
- package/paketquellen/koolie.cmd +23 -0
- package/paketquellen/koolie_befehl.py +82 -0
- package/paketquellen/npm/koolie.js +26 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Lizenzhinweis
|
|
2
|
+
|
|
3
|
+
| Attribut | Wert |
|
|
4
|
+
|---|---|
|
|
5
|
+
| ID | `FW-GOV-LIC` |
|
|
6
|
+
| Version | `0.2.2` |
|
|
7
|
+
| Status | `pilot` |
|
|
8
|
+
| Owner (Rolle) | `<FRAMEWORK_OWNER>` |
|
|
9
|
+
| Gilt für | den gesamten Inhalt dieses Frameworks – Kern, Client Packs, Regeltexte, Werkzeuge, Vorlagen und Dokumentation |
|
|
10
|
+
| Entstehung | `CR-2026-126`, **D-316** bis **D-317** (2026-09-23); Rechteinhaber benannt mit `CR-2026-128`, **D-323**; SPDX-Kennung mit `CR-2026-165`, **D-507** |
|
|
11
|
+
|
|
12
|
+
## 1. Lizenz (normativ)
|
|
13
|
+
|
|
14
|
+
**Dieses Framework steht unter der GNU General Public License, Version 3** (`LICENSE`,
|
|
15
|
+
wörtlicher Text der Free Software Foundation). Es ist damit **freie Software im Sinne der
|
|
16
|
+
Open-Source-Definition** – jede und jeder darf es nutzen, untersuchen, ändern und
|
|
17
|
+
weitergeben.
|
|
18
|
+
|
|
19
|
+
SPDX-Kennung: `GPL-3.0-only` – es gilt Version 3, nicht „oder jede spätere Version“
|
|
20
|
+
(D-507). Das Banner des Installationsdialogs liest diese Zeile und die folgende und nennt
|
|
21
|
+
die Kurzform `GPL-3.0`.
|
|
22
|
+
|
|
23
|
+
Copyright © 2026 René Hildebrand
|
|
24
|
+
|
|
25
|
+
> 🔴 **Diese eine Zeile nennt eine Person, und sie ist die einzige im ganzen Kern, die
|
|
26
|
+
> das tut** (D-323, `CR-2026-128` E7). Überall sonst gilt die Projektneutralität: Rollen
|
|
27
|
+
> statt Personen, Platzhalter statt Namen. **Hier gilt sie nicht, und der Grund ist
|
|
28
|
+
> keine Ausnahme vom Prinzip, sondern seine Grenze.** Die Neutralitätsregel hält
|
|
29
|
+
> **fremde** Personen aus generischen Bestandteilen – Kunden, Behörden, Kolleginnen und
|
|
30
|
+
> Kollegen. Der **Urheber des Werks** ist keine fremde Person: Ohne ihn hat die Lizenz
|
|
31
|
+
> keinen Zusagenden, die Zusatzerlaubnis aus Abschnitt 2 niemanden, der sie erteilt, und
|
|
32
|
+
> §7 GPL-3.0 keine Rechtsgrundlage.
|
|
33
|
+
>
|
|
34
|
+
> ⚠️ **Der Preis ist benannt:** Der Name wandert mit jeder Kopie des Kerns in jedes
|
|
35
|
+
> übernehmende Projekt. ⚠️ **Und der Widerspruch, der ihn nötig machte, ist gemessen:**
|
|
36
|
+
> Die Historie dieses Repositoriums führt denselben Namen in **122 Commits** und die
|
|
37
|
+
> Adresse in allen **261** – *er stand dort, wo er niemandem nützt, und fehlte dort, wo
|
|
38
|
+
> er rechtlich wirkt* (D-324).
|
|
39
|
+
|
|
40
|
+
> Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General
|
|
41
|
+
> Public License, Version 3, weitergeben und/oder verändern. Es wird **ohne jede
|
|
42
|
+
> Gewährleistung** bereitgestellt, sogar ohne die implizite Gewährleistung der
|
|
43
|
+
> Marktgängigkeit oder der Eignung für einen bestimmten Zweck. Einzelheiten stehen in der
|
|
44
|
+
> GNU General Public License.
|
|
45
|
+
|
|
46
|
+
**Die Lizenzdatei liegt an zwei Stellen und trägt an beiden denselben Inhalt:** in der
|
|
47
|
+
Wurzel des Repositoriums (`LICENSE`, dort finden sie die Hostingdienste) und im Kern
|
|
48
|
+
(`<CORE_DIR>/LICENSE`, dort **wandert sie mit** – ein übernehmendes Projekt kopiert den Kern
|
|
49
|
+
als Ganzes, und ein Werk ohne seine Lizenz weiterzugeben ist nach §4 GPL-3.0 unzulässig).
|
|
50
|
+
🔴 **Prüfung 79 hält beide Dateien gegeneinander** – *zwei Stellen mit demselben Inhalt
|
|
51
|
+
laufen auseinander, wenn niemand nachzählt; das ist in diesem Repositorium der häufigste
|
|
52
|
+
Befundtyp.*
|
|
53
|
+
|
|
54
|
+
## 2. Zusätzliche Erlaubnis nach §7 GPL-3.0 (normativ)
|
|
55
|
+
|
|
56
|
+
> **Dateien, die aus den mitgelieferten Vorlagen dieses Frameworks entstehen, und jede
|
|
57
|
+
> Ausgabe seiner Werkzeuge unterliegen nicht dieser Lizenz.** Das Urheberrecht daran liegt
|
|
58
|
+
> bei dem Projekt, das sie erzeugt hat; es darf sie unter beliebigen Bedingungen
|
|
59
|
+
> weitergeben oder für sich behalten.
|
|
60
|
+
|
|
61
|
+
**Gemeint sind ausdrücklich:** das ausgefüllte Project Overlay
|
|
62
|
+
(`.koolie/project-overlay/OVERLAY.md`), aus `*.template` erzeugte Regel- und
|
|
63
|
+
Technology-Pack-Dateien, die von `install.py` erzeugte Laufzeitschicht, Ergebnisberichte,
|
|
64
|
+
Protokolle und jede sonstige Ausgabe eines Werkzeugs dieses Frameworks.
|
|
65
|
+
|
|
66
|
+
🔴 **Warum diese Erlaubnis dasteht, und sie ist kein Schmuck.** Ohne sie wäre ein
|
|
67
|
+
ausgefülltes Overlay formal eine *geänderte Fassung* eines GPL-Werks – ein Ergebnis, das
|
|
68
|
+
niemand beabsichtigt und das eine Rechtsabteilung zu Recht aufhält. ➡️ *Dieses Framework
|
|
69
|
+
benennt Preise, statt sie zu verschweigen; eine Lizenzkante gehört genauso benannt wie eine
|
|
70
|
+
Prüfungsgrenze.*
|
|
71
|
+
|
|
72
|
+
## 3. Was die Lizenz für ein übernehmendes Projekt bedeutet (Erläuterung)
|
|
73
|
+
|
|
74
|
+
**Die GPL bindet die Weitergabe, nicht die Nutzung.** Solange ein Projekt dieses Framework
|
|
75
|
+
nur benutzt, entsteht keine einzige Pflicht.
|
|
76
|
+
|
|
77
|
+
| Lage | Folge |
|
|
78
|
+
|---|---|
|
|
79
|
+
| Der Kern wird in ein Projekt kopiert und dort benutzt – auch in einem Unternehmen, auch für ein kommerzielles Produkt | **keine Pflicht.** Es wird nichts weitergegeben |
|
|
80
|
+
| Mit dem Framework wird ein Produkt entwickelt und verkauft | **keine Pflicht.** Das Produkt ist keine Ableitung: Es enthält keine Zeile dieses Frameworks, und die Ausgabe eines Werkzeugs ist keine Ableitung des Werkzeugs (Abschnitt 2) |
|
|
81
|
+
| Das Projektrepositorium wird veröffentlicht, mit `<CORE_DIR>/` darin | `<CORE_DIR>/` steht unter GPL-3.0 – **es steht ohnehin schon so da.** Der eigene Code daneben bleibt frei: §5 GPL-3.0 nennt das ein *aggregate*, und ein gemeinsames Repositorium ist genau das |
|
|
82
|
+
| Code dieses Frameworks wird **in** ein Produkt hineinkopiert | Dieser Teil wird GPL-3.0. **Das ist gewollt** und der einzige Fall, in dem die Lizenz greift |
|
|
83
|
+
| Das Framework selbst wird weitergegeben, entgeltlich oder unentgeltlich | Es muss unter GPL-3.0 weitergegeben werden, mit Quelltext. **Ein Umbenennen-und-proprietär-Verkaufen ist damit ausgeschlossen** – das war der tragende Grund der Lizenzwahl (D-316) |
|
|
84
|
+
|
|
85
|
+
## 4. Die verworfenen Alternativen (Erläuterung)
|
|
86
|
+
|
|
87
|
+
Beides ist in `CR-2026-126` Abschnitt 4 einzeln vorgelegt und in D-316 entschieden:
|
|
88
|
+
|
|
89
|
+
- **Apache-2.0** – verworfen: Sie erlaubt ausdrücklich, das Werk umzubenennen, zu schließen
|
|
90
|
+
und zu verkaufen. Ihr einziger Riegel ist §6, und der schützt den **Namen**, nicht die
|
|
91
|
+
Sache.
|
|
92
|
+
- **BUSL-1.1** – verworfen: Sie trifft die Absicht wörtlich, ist aber **kein
|
|
93
|
+
OSI-Open-Source**. Der Zweck dieses Frameworks ist die Übernahme in Unternehmen, und eine
|
|
94
|
+
Lizenz, die eine Rechtsabteilung als proprietär einstuft, kostet genau dort.
|
|
95
|
+
|
|
96
|
+
⚠️ **Der Preis der gewählten Lizenz ist benannt:** Manche Organisationen führen pauschale
|
|
97
|
+
GPL-Verbote. Abschnitt 3 und die Zusatzerlaubnis aus Abschnitt 2 sind die Antwort darauf –
|
|
98
|
+
sie machen nachlesbar, dass für einen Anwender dieses Frameworks **keine** Pflicht entsteht.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Ownership
|
|
2
|
+
|
|
3
|
+
> Rollen, keine Personen. Die Zuordnung von Personen zu Rollen erfolgt außerhalb des Repositorys im Teamverzeichnis der Organisation. Details der Verantwortlichkeiten: `.koolie/core/governance/RACI.md`.
|
|
4
|
+
|
|
5
|
+
| Attribut | Wert |
|
|
6
|
+
|---|---|
|
|
7
|
+
| ID | `FW-GOV-OWNERS` |
|
|
8
|
+
| Version | `0.1.0` |
|
|
9
|
+
| Status | `pilot` |
|
|
10
|
+
| Owner (Rolle) | `<FRAMEWORK_OWNER>` |
|
|
11
|
+
|
|
12
|
+
| Bereich | Pfad(e) | Owner (Rolle) | Stellvertretung |
|
|
13
|
+
|---|---|---|---|
|
|
14
|
+
| Framework gesamt, Releases, Prioritätshierarchie | `/`, `.koolie/core/VERSION`, `.koolie/core/CHANGELOG.md`, `.koolie/core/governance/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
|
|
15
|
+
| Framework Core | `.koolie/core/framework/core/`, Wurzel-Anweisungsdatei, Regelablage `00-*`, `10-*`, `15-*` | `<FRAMEWORK_OWNER>` | `<TBD>` |
|
|
16
|
+
| Datenschutzmodell (FW-CORE-02) | `.koolie/core/framework/core/02-privacy.md`, Regelablage `10-*` | `<FRAMEWORK_OWNER>` mit `<DATA_PROTECTION_CONTACT>` | – |
|
|
17
|
+
| Sicherheitsmodell (FW-CORE-03), Berechtigungen, Hooks | `.koolie/core/framework/core/03-security.md`, `.koolie/core/framework/runtime/permissions.json`, `.koolie/core/framework/runtime/hooks.json`, `.koolie/core/clientmap.py`, `.koolie/core/tests/scripts/hook-*` | `<FRAMEWORK_OWNER>` mit `<SECURITY_CONTACT>` | – |
|
|
18
|
+
| Role Pack Softwareentwicklung | `.koolie/core/framework/role-packs/software-development/`, Regelablage `30-role-software-development.md` | `<FRAMEWORK_OWNER>` (bis Benennung Modul-Owner: `<TBD>`) | – |
|
|
19
|
+
| Role Pack Requirements Engineering (RP-RE), Skill `role-re-ticket` | `.koolie/core/framework/role-packs/requirements-engineering/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
|
|
20
|
+
| Technology Packs | `.koolie/core/framework/tech-packs/` | je Pack `<TBD: Modul-Owner>` | – |
|
|
21
|
+
| Client Packs (Abbildung auf KI-Clients) | `.koolie/core/clients/` | `<FRAMEWORK_OWNER>` | `<SECURITY_CONTACT>` für Kernzusagen ohne technische Durchsetzung |
|
|
22
|
+
| Client Pack `devin-desktop` (CP-DD) | `.koolie/core/clients/devin-desktop/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
|
|
23
|
+
| Client Pack `claude-code` (CP-CC) | `.koolie/core/clients/claude-code/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
|
|
24
|
+
| Client Pack `openai-codex` (CP-OC) | `.koolie/core/clients/openai-codex/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
|
|
25
|
+
| Client Pack `kiro` (CP-KI) | `.koolie/core/clients/kiro/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
|
|
26
|
+
| Client Pack `cursor` (CP-CU) | `.koolie/core/clients/cursor/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
|
|
27
|
+
| Framework-Skills FW-SK-001…012 | Skill-Ablage `fw-*` | `<FRAMEWORK_OWNER>` (bis Benennung Modul-Owner je Gruppe) | – |
|
|
28
|
+
| Prompt-Bibliothek | `.koolie/core/prompts/` | `<FRAMEWORK_OWNER>` | – |
|
|
29
|
+
| Checklisten und Entscheidungsbäume | `.koolie/core/checklists/`, `.koolie/core/decision-trees/` | `<FRAMEWORK_OWNER>` | – |
|
|
30
|
+
| Onboarding | `.koolie/core/onboarding/` | `<FRAMEWORK_OWNER>` mit Mentorinnen und Mentoren | – |
|
|
31
|
+
| Testkatalog und Validierung | `tests/` | `<FRAMEWORK_OWNER>` | – |
|
|
32
|
+
| Pilotkonzept und Metriken | `.koolie/core/pilot/` | Projektleitung des Pilotprojekts | – |
|
|
33
|
+
| Project Overlay (je Projekt) | `.koolie/project-overlay/`, Regelablage `20-*`, `2N-*` | `<APPROVAL_ROLE>` des Projekts | `<TBD>` |
|
|
34
|
+
| Organisationsvorgaben-Einbindung | `.koolie/core/framework/org-policies/` | Organisation | – |
|
|
35
|
+
|
|
36
|
+
Hinweis für Git-Plattformen: Diese Tabelle KANN zusätzlich als plattformspezifische `CODEOWNERS`-Datei abgebildet werden (`<TBD: CODEOWNERS je Plattform-Konvention>`); maßgeblich bleibt diese Datei.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.25.0
|
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
banner.py - Das Banner des Installationsdialogs (CR-2026-165, D-506).
|
|
4
|
+
|
|
5
|
+
Hintergrund: Der Dialog hinter den Startern install.cmd und install.command gibt beim
|
|
6
|
+
Start einmal ein Banner aus - ein Koolie im Profil, der ueber der linken oberen Ecke einer
|
|
7
|
+
Box steht und ihren oberen Rahmen unterbricht, dazu Wortmarke, Version, zwei Textzeilen
|
|
8
|
+
und eine Fusszeile mit Copyright, Lizenz und Repository. Das Banner ist Darstellung und
|
|
9
|
+
sonst nichts: Es entscheidet nichts, liest nichts ausser VERSION und LICENSE-HINWEIS.md
|
|
10
|
+
und darf den Dialog NIE abbrechen - jede Ausnahme endet in der Textvariante oder in gar
|
|
11
|
+
keiner Ausgabe.
|
|
12
|
+
|
|
13
|
+
Vier Varianten, die erste zutreffende Regel gewinnt (Antrag Abschnitt 6):
|
|
14
|
+
|
|
15
|
+
--no-banner oder KOOLIE_NO_BANNER=1 nichts
|
|
16
|
+
Ausgabe ist kein Terminal (Pipe, Log) Textvariante ohne Farbe
|
|
17
|
+
Kodierung nicht UTF-8, unter Windows die
|
|
18
|
+
Terminalsteuerung nicht einschaltbar Textvariante
|
|
19
|
+
Breite unter 66 Textvariante
|
|
20
|
+
Breite 66 bis 79 Kompaktvariante (ohne Hund)
|
|
21
|
+
Breite ab 80 (alte Windows-Konsole: ab 81) Vollvariante
|
|
22
|
+
|
|
23
|
+
Farbe nur im Terminal, ohne NO_COLOR und ohne TERM=dumb: COLORTERM truecolor/24bit oder
|
|
24
|
+
Windows Terminal -> Truecolor, TERM mit 256color -> 256 Farben, sonst einfarbig.
|
|
25
|
+
|
|
26
|
+
Die Codepage der Windows-Konsole wird NICHT geprueft (Abweichung vom Antrag, D-506):
|
|
27
|
+
Python schreibt ab 3.6 in eine Konsole ueber die Unicode-Schnittstelle, die Codepage
|
|
28
|
+
entscheidet dort nichts - verlangt man 65001, sieht ein Doppelklick auf install.cmd in
|
|
29
|
+
einer deutschen Konsole (850) nie mehr als die Textvariante. Entscheidend ist die
|
|
30
|
+
Kodierung, die Python fuer die Ausgabe meldet.
|
|
31
|
+
|
|
32
|
+
Der Name des Rechteinhabers steht NICHT hier, sondern wird aus LICENSE-HINWEIS.md gelesen
|
|
33
|
+
(D-323: die einzige Stelle im Kern, die eine Person nennt, bleibt die einzige). Fehlt die
|
|
34
|
+
Zeile, entfaellt der Name im Banner.
|
|
35
|
+
|
|
36
|
+
Vorschau ohne Dialog:
|
|
37
|
+
|
|
38
|
+
python .koolie/core/banner.py [--variante voll|kompakt|text] [--farbe true|256|mono]
|
|
39
|
+
"""
|
|
40
|
+
from __future__ import annotations
|
|
41
|
+
|
|
42
|
+
import os
|
|
43
|
+
import re
|
|
44
|
+
import shutil
|
|
45
|
+
import sys
|
|
46
|
+
|
|
47
|
+
HERE = os.path.dirname(os.path.abspath(__file__))
|
|
48
|
+
|
|
49
|
+
# --- Die Assets (Antrag Abschnitt 5) - Aenderungen am Design nur hier ----------------
|
|
50
|
+
# Der Hund, 21 Zeilen; Leerzeichen sind durchsichtig. Die Zonen stehen zellgenau
|
|
51
|
+
# daneben: F Fell, M Merle, N Nase, E Auge, L helles Fell.
|
|
52
|
+
HUND = (
|
|
53
|
+
" ▄",
|
|
54
|
+
" ▄ ▄█▄",
|
|
55
|
+
" ▄█▄ ▄█▒█▄",
|
|
56
|
+
" ▄████▄██▒██▄",
|
|
57
|
+
" ▄████████████▄",
|
|
58
|
+
" ██████████████▄",
|
|
59
|
+
" ███████████░███",
|
|
60
|
+
" ███████████████▄▄▄▄▄▄▄▄▄",
|
|
61
|
+
" █████████████████████████▓▓",
|
|
62
|
+
" ████████████████████████▓▓▓▓",
|
|
63
|
+
" ████████████████████████▓▓▓",
|
|
64
|
+
" ████████████▒▒▒▒▒▒▒▒▒▒▀",
|
|
65
|
+
" ██████████▒▒▒▒▒▒▒▒▀▀",
|
|
66
|
+
" ████████▒▒▒▒▒▀▀",
|
|
67
|
+
" ████████▒▒▒░",
|
|
68
|
+
" ████████▒▒▒░░░",
|
|
69
|
+
" ▄███████▒▒▒▒░░░░▄",
|
|
70
|
+
" ▄███████▒▒▒▒░░░░░▄",
|
|
71
|
+
" ▄███████▒▒▒▒▒░░░░░░▄",
|
|
72
|
+
" ▄████████▒▒▒▒░░░░░░░░",
|
|
73
|
+
" ▄████████▒▒▒▒▒░░░░░░░▀",
|
|
74
|
+
)
|
|
75
|
+
HUND_ZONEN = (
|
|
76
|
+
" F",
|
|
77
|
+
" F FFF",
|
|
78
|
+
" FFF FFLFF",
|
|
79
|
+
" FMFFFFFFLFFF",
|
|
80
|
+
" FFFFMMFFFFFFFF",
|
|
81
|
+
" FFFFMFFFFFFFFFF",
|
|
82
|
+
" FFFFFFFFFFFEFFF",
|
|
83
|
+
" FFMMFFFFFFFFFFFFFFFFFFFF",
|
|
84
|
+
" FFFFFFFFFMMFFFFFFFFFFFFFFNN",
|
|
85
|
+
" FFFFFFFFMFFFFFFFFFFFFFFFNNNN",
|
|
86
|
+
" FFFFMFFFFFFFFFFFFFFFFFFFNNN",
|
|
87
|
+
" FFFFMFFFFFFFLLLLLLLLLLL",
|
|
88
|
+
" FFFFFFFFFFLLLLLLLLLF",
|
|
89
|
+
" FFFFFFFFLLLLLLF",
|
|
90
|
+
" FFFFFFFFLLLL",
|
|
91
|
+
" FFFFFFFFLLLLLL",
|
|
92
|
+
" FFFFFFFFLLLLLLLLL",
|
|
93
|
+
" FFFFFFFFLLLLLLLLLL",
|
|
94
|
+
" FFFFFFFFLLLLLLLLLLLL",
|
|
95
|
+
" FFFFFFFFFLLLLLLLLLLLL",
|
|
96
|
+
" FFFFFFFFFLLLLLLLLLLLLL",
|
|
97
|
+
)
|
|
98
|
+
WORTMARKE = (
|
|
99
|
+
"██ ▄█ ▄████▄ ▄████▄ ██ ██ ██████",
|
|
100
|
+
"██ ▄█▀ ██ ██ ██ ██ ██ ██ ██ ",
|
|
101
|
+
"████▀ ██ ██ ██ ██ ██ ██ █████ ",
|
|
102
|
+
"██ ▀█▄ ██ ██ ██ ██ ██ ██ ██ ",
|
|
103
|
+
"██ ▀█ ▀████▀ ▀████▀ ██████ ██ ██████",
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
CATCHLINE = "The field is open. The edge is not."
|
|
107
|
+
UNTERZEILE = "Governance for AI coding assistants"
|
|
108
|
+
REPOSITORIUM = "https://github.com/Renoxar/koolie"
|
|
109
|
+
LIZENZ_KURZ = "GPL-3.0"
|
|
110
|
+
VERSION_MAX = 42
|
|
111
|
+
TEXT_MAX = 47
|
|
112
|
+
|
|
113
|
+
# Zone -> (Truecolor, 256 Farben, Attribut)
|
|
114
|
+
FARBEN = {
|
|
115
|
+
"F": ((184, 190, 199), 250, ""), "M": ((94, 127, 153), 67, ""),
|
|
116
|
+
"N": ((58, 70, 87), 239, ""), "E": ((79, 179, 200), 74, ""),
|
|
117
|
+
"L": ((230, 233, 236), 254, ""), "B": ((59, 140, 140), 66, ""),
|
|
118
|
+
"K": ((92, 214, 224), 80, "1"), "V": ((59, 140, 140), 66, ""),
|
|
119
|
+
"C": ((224, 179, 106), 179, ""), "S": ((138, 145, 153), 245, "2"),
|
|
120
|
+
"T": ((138, 145, 153), 245, "2"),
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
VOLL_BREITE, KOMPAKT_BREITE = 80, 66
|
|
124
|
+
ESC = "\x1b"
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
class Raster:
|
|
128
|
+
"""Zwei gleich grosse Zeichenraster: Grafik und Zonen."""
|
|
129
|
+
|
|
130
|
+
def __init__(self, breite: int, hoehe: int) -> None:
|
|
131
|
+
self.zeichen = [[" "] * breite for _ in range(hoehe)]
|
|
132
|
+
self.zonen = [[" "] * breite for _ in range(hoehe)]
|
|
133
|
+
|
|
134
|
+
def setze(self, zeile: int, spalte: int, text: str, zone: str) -> None:
|
|
135
|
+
for i, ch in enumerate(text):
|
|
136
|
+
if ch != " ":
|
|
137
|
+
self.zeichen[zeile][spalte + i] = ch
|
|
138
|
+
self.zonen[zeile][spalte + i] = zone
|
|
139
|
+
|
|
140
|
+
def rahmen(self, oben: int, breite: int, hoehe: int, trenner: int) -> None:
|
|
141
|
+
for z in range(oben, oben + hoehe):
|
|
142
|
+
links, mitte, rechts = "│", " ", "│"
|
|
143
|
+
if z == oben:
|
|
144
|
+
links, mitte, rechts = "╭", "─", "╮"
|
|
145
|
+
elif z == oben + trenner:
|
|
146
|
+
links, mitte, rechts = "├", "─", "┤"
|
|
147
|
+
elif z == oben + hoehe - 1:
|
|
148
|
+
links, mitte, rechts = "╰", "─", "╯"
|
|
149
|
+
self.setze(z, 0, links + mitte * (breite - 2) + rechts, "B")
|
|
150
|
+
|
|
151
|
+
def zeilen(self) -> list:
|
|
152
|
+
return [("".join(z).rstrip(), "".join(k)) for z, k in zip(self.zeichen, self.zonen)]
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def _fuss_links(fuss: dict) -> str:
|
|
156
|
+
teile = []
|
|
157
|
+
if fuss.get("jahr") and fuss.get("name"):
|
|
158
|
+
teile.append("© %s %s" % (fuss["jahr"], fuss["name"]))
|
|
159
|
+
teile.append(fuss.get("lizenz") or LIZENZ_KURZ)
|
|
160
|
+
return " · ".join(teile)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def _version(version: str) -> str:
|
|
164
|
+
v = "v" + version
|
|
165
|
+
return v[:VERSION_MAX]
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
def _pruefe_breite(text: str, frei: int) -> None:
|
|
169
|
+
if len(text) > frei:
|
|
170
|
+
raise ValueError("Text zu lang fuer die Box: %r" % text)
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
def rendern_voll(version: str, fuss: dict) -> list:
|
|
174
|
+
"""Vollvariante, 25 Zeilen zu 80 Spalten: (Zeile, Zonen) je Zeile."""
|
|
175
|
+
r = Raster(VOLL_BREITE, 25)
|
|
176
|
+
r.rahmen(12, VOLL_BREITE, 13, 10)
|
|
177
|
+
for i, z in enumerate(WORTMARKE):
|
|
178
|
+
r.setze(14 + i, 30, z, "K")
|
|
179
|
+
v = _version(version)
|
|
180
|
+
r.setze(19, 72 - len(v), v, "V")
|
|
181
|
+
for text, zeile, zone in ((CATCHLINE, 20, "C"), (UNTERZEILE, 21, "S")):
|
|
182
|
+
_pruefe_breite(text, TEXT_MAX)
|
|
183
|
+
r.setze(zeile, 30, text, zone)
|
|
184
|
+
links, url = _fuss_links(fuss), REPOSITORIUM
|
|
185
|
+
_pruefe_breite(links + " " + url, VOLL_BREITE - 6)
|
|
186
|
+
r.setze(23, 3, links, "T")
|
|
187
|
+
r.setze(23, VOLL_BREITE - 3 - len(url), url, "T")
|
|
188
|
+
for i, (z, k) in enumerate(zip(HUND, HUND_ZONEN)):
|
|
189
|
+
for s, (ch, zone) in enumerate(zip(z, k)):
|
|
190
|
+
if ch != " ":
|
|
191
|
+
r.zeichen[i][s] = ch
|
|
192
|
+
r.zonen[i][s] = zone
|
|
193
|
+
return r.zeilen()
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
def rendern_kompakt(version: str, fuss: dict) -> list:
|
|
197
|
+
"""Kompaktvariante, 13 Zeilen zu 66 Spalten, ohne Hund, URL ohne Schema."""
|
|
198
|
+
r = Raster(KOMPAKT_BREITE, 13)
|
|
199
|
+
r.rahmen(0, KOMPAKT_BREITE, 13, 10)
|
|
200
|
+
for i, z in enumerate(WORTMARKE):
|
|
201
|
+
r.setze(2 + i, 4, z, "K")
|
|
202
|
+
v = _version(version)
|
|
203
|
+
r.setze(7, 46 - len(v), v, "V")
|
|
204
|
+
for text, zeile, zone in ((CATCHLINE, 8, "C"), (UNTERZEILE, 9, "S")):
|
|
205
|
+
_pruefe_breite(text, KOMPAKT_BREITE - 6)
|
|
206
|
+
r.setze(zeile, 4, text, zone)
|
|
207
|
+
links, url = _fuss_links(fuss), REPOSITORIUM.split("://", 1)[-1]
|
|
208
|
+
_pruefe_breite(links + " " + url, KOMPAKT_BREITE - 6)
|
|
209
|
+
r.setze(11, 3, links, "T")
|
|
210
|
+
r.setze(11, KOMPAKT_BREITE - 3 - len(url), url, "T")
|
|
211
|
+
return r.zeilen()
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
def rendern_text(version: str, fuss: dict) -> list:
|
|
215
|
+
"""Textvariante: ASCII bis auf den Namen, keine Box, keine Farbe."""
|
|
216
|
+
links = _fuss_links(fuss).replace("©", "(c)").replace(" · ", " - ")
|
|
217
|
+
return [("KOOLIE " + _version(version), ""), (CATCHLINE, ""), (UNTERZEILE, ""),
|
|
218
|
+
("%s - %s" % (links, REPOSITORIUM), "")]
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
RENDERER = {"voll": rendern_voll, "kompakt": rendern_kompakt, "text": rendern_text}
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
def einfaerben(zeile: str, zonen: str, farbe: str) -> str:
|
|
225
|
+
"""Laeufe gleicher Zone mit je einer Sequenz; Rueckstellung am Zeilenende."""
|
|
226
|
+
if farbe == "mono" or not zonen:
|
|
227
|
+
return zeile
|
|
228
|
+
aus, aktiv, i = [], None, 0
|
|
229
|
+
while i < len(zeile):
|
|
230
|
+
zone = zonen[i] if i < len(zonen) else " "
|
|
231
|
+
j = i
|
|
232
|
+
while j < len(zeile) and (zonen[j] if j < len(zonen) else " ") == zone:
|
|
233
|
+
j += 1
|
|
234
|
+
if zone == " ":
|
|
235
|
+
if aktiv:
|
|
236
|
+
aus.append(ESC + "[0m")
|
|
237
|
+
aktiv = None
|
|
238
|
+
else:
|
|
239
|
+
rgb, idx, attr = FARBEN[zone]
|
|
240
|
+
teile = ["0"] + ([attr] if attr else [])
|
|
241
|
+
teile += (["38", "2"] + [str(x) for x in rgb]) if farbe == "true" else ["38", "5", str(idx)]
|
|
242
|
+
aus.append(ESC + "[" + ";".join(teile) + "m")
|
|
243
|
+
aktiv = zone
|
|
244
|
+
aus.append(zeile[i:j])
|
|
245
|
+
i = j
|
|
246
|
+
if aktiv:
|
|
247
|
+
aus.append(ESC + "[0m")
|
|
248
|
+
return "".join(aus)
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
def rendern(variante: str, farbe: str, version: str, fuss: dict) -> list:
|
|
252
|
+
return [einfaerben(z, k, farbe) for z, k in RENDERER[variante](version, fuss)]
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
# --- Datenquellen ---------------------------------------------------------------------
|
|
256
|
+
def version_lesen() -> str:
|
|
257
|
+
with open(os.path.join(HERE, "VERSION"), encoding="utf-8") as fh:
|
|
258
|
+
return fh.read().strip()
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
COPYRIGHT_RE = re.compile(r"^Copyright © (\d{4}(?:[–-]\d{4})?) (\S.*?)\s*$", re.M)
|
|
262
|
+
SPDX_RE = re.compile(r"SPDX-Kennung: `(GPL-3\.0-(?:only|or-later))`")
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
def fuss_lesen() -> dict:
|
|
266
|
+
"""Jahr und Name aus LICENSE-HINWEIS.md; fehlt die Zeile, bleibt nur die Lizenz."""
|
|
267
|
+
try:
|
|
268
|
+
with open(os.path.join(HERE, "LICENSE-HINWEIS.md"), encoding="utf-8") as fh:
|
|
269
|
+
text = fh.read()
|
|
270
|
+
except OSError:
|
|
271
|
+
return {"lizenz": LIZENZ_KURZ}
|
|
272
|
+
m = COPYRIGHT_RE.search(text)
|
|
273
|
+
s = SPDX_RE.search(text)
|
|
274
|
+
fuss = {"lizenz": re.sub(r"-(only|or-later)$", "", s.group(1)) if s else LIZENZ_KURZ}
|
|
275
|
+
if m:
|
|
276
|
+
fuss.update(jahr=m.group(1), name=m.group(2))
|
|
277
|
+
return fuss
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
# --- Auswahl --------------------------------------------------------------------------
|
|
281
|
+
def _ist_utf8(kodierung) -> bool:
|
|
282
|
+
return (kodierung or "").lower().replace("_", "-") in ("utf-8", "utf8")
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
def farbstufe(umgebung: dict, terminal: bool) -> str:
|
|
286
|
+
if not terminal or "NO_COLOR" in umgebung or umgebung.get("TERM") == "dumb":
|
|
287
|
+
return "mono"
|
|
288
|
+
if umgebung.get("COLORTERM", "").lower() in ("truecolor", "24bit") or umgebung.get("WT_SESSION"):
|
|
289
|
+
return "true"
|
|
290
|
+
if "256color" in umgebung.get("TERM", ""):
|
|
291
|
+
return "256"
|
|
292
|
+
return "mono"
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
def variante_waehlen(umgebung: dict, terminal: bool, kodierung, breite: int,
|
|
296
|
+
windows: bool = False, vt: bool = True) -> str:
|
|
297
|
+
"""Die Tabelle aus Abschnitt 6 des Antrags; None heisst: nichts ausgeben."""
|
|
298
|
+
if umgebung.get("KOOLIE_NO_BANNER", "") not in ("", "0"):
|
|
299
|
+
return None
|
|
300
|
+
if not terminal or not _ist_utf8(kodierung) or (windows and not vt):
|
|
301
|
+
return "text"
|
|
302
|
+
alte_konsole = windows and not (umgebung.get("WT_SESSION") or umgebung.get("TERM_PROGRAM"))
|
|
303
|
+
if breite >= VOLL_BREITE + (1 if alte_konsole else 0):
|
|
304
|
+
return "voll"
|
|
305
|
+
if breite >= KOMPAKT_BREITE:
|
|
306
|
+
return "kompakt"
|
|
307
|
+
return "text"
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
def _breite(umgebung: dict) -> int:
|
|
311
|
+
"""COLUMNS der uebergebenen Umgebung, sonst das Terminal, sonst 80."""
|
|
312
|
+
wert = str(umgebung.get("COLUMNS", ""))
|
|
313
|
+
if wert.isdigit() and int(wert) > 0:
|
|
314
|
+
return int(wert)
|
|
315
|
+
return shutil.get_terminal_size(fallback=(80, 24)).columns
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
def _vt_einschalten(stream) -> bool:
|
|
319
|
+
"""Unter Windows die Terminalsteuerung der Konsole einschalten; False, wenn es nicht geht."""
|
|
320
|
+
if os.name != "nt":
|
|
321
|
+
return True
|
|
322
|
+
try:
|
|
323
|
+
import ctypes
|
|
324
|
+
import msvcrt
|
|
325
|
+
kernel32 = ctypes.windll.kernel32
|
|
326
|
+
handle = msvcrt.get_osfhandle(stream.fileno())
|
|
327
|
+
modus = ctypes.c_uint32()
|
|
328
|
+
if not kernel32.GetConsoleMode(handle, ctypes.byref(modus)):
|
|
329
|
+
return False
|
|
330
|
+
return bool(kernel32.SetConsoleMode(handle, modus.value | 0x0004) or modus.value & 0x0004)
|
|
331
|
+
except Exception: # noqa: BLE001 - jede Stoerung heisst: keine Steuerung
|
|
332
|
+
return False
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
def _transliterieren(zeile: str, kodierung) -> str:
|
|
336
|
+
try:
|
|
337
|
+
zeile.encode(kodierung or "ascii", errors="strict")
|
|
338
|
+
return zeile
|
|
339
|
+
except (UnicodeError, LookupError):
|
|
340
|
+
return zeile.replace("é", "e").encode("ascii", "replace").decode("ascii")
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
def ausgeben(stream=None, *, argv=None, umgebung=None, variante=None, farbe=None,
|
|
344
|
+
version=None) -> None:
|
|
345
|
+
"""Das Banner schreiben - einmal, gefolgt von genau einer Leerzeile. Wirft nie."""
|
|
346
|
+
try:
|
|
347
|
+
stream = stream or sys.stdout
|
|
348
|
+
umgebung = os.environ if umgebung is None else umgebung
|
|
349
|
+
if "--no-banner" in (argv or ()):
|
|
350
|
+
return
|
|
351
|
+
terminal = bool(getattr(stream, "isatty", lambda: False)())
|
|
352
|
+
kodierung = getattr(stream, "encoding", None)
|
|
353
|
+
if variante is None:
|
|
354
|
+
windows = os.name == "nt"
|
|
355
|
+
vt = _vt_einschalten(stream) if (windows and terminal) else True
|
|
356
|
+
breite = _breite(umgebung)
|
|
357
|
+
variante = variante_waehlen(umgebung, terminal, kodierung, breite, windows, vt)
|
|
358
|
+
if variante is None:
|
|
359
|
+
return
|
|
360
|
+
elif umgebung.get("KOOLIE_NO_BANNER", "") not in ("", "0"):
|
|
361
|
+
return
|
|
362
|
+
if farbe is None:
|
|
363
|
+
farbe = farbstufe(umgebung, terminal) if variante != "text" else "mono"
|
|
364
|
+
version = version or version_lesen()
|
|
365
|
+
try:
|
|
366
|
+
zeilen = rendern(variante, farbe, version, fuss_lesen())
|
|
367
|
+
except Exception: # noqa: BLE001 - ein defektes Asset faellt auf Text zurueck
|
|
368
|
+
zeilen = rendern("text", "mono", version, fuss_lesen())
|
|
369
|
+
if variante == "text" or not _ist_utf8(kodierung):
|
|
370
|
+
zeilen = [_transliterieren(z, kodierung) for z in zeilen]
|
|
371
|
+
stream.write("\n".join(zeilen) + "\n\n")
|
|
372
|
+
stream.flush()
|
|
373
|
+
except Exception: # noqa: BLE001 - das Banner bricht den Dialog nie ab (F-5)
|
|
374
|
+
return
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
def main(argv: list) -> int:
|
|
378
|
+
variante = farbe = None
|
|
379
|
+
rest = list(argv)
|
|
380
|
+
while rest:
|
|
381
|
+
wort = rest.pop(0)
|
|
382
|
+
if wort == "--variante" and rest and rest[0] in RENDERER:
|
|
383
|
+
variante = rest.pop(0)
|
|
384
|
+
elif wort == "--farbe" and rest and rest[0] in ("true", "256", "mono"):
|
|
385
|
+
farbe = rest.pop(0)
|
|
386
|
+
else:
|
|
387
|
+
print("Aufruf: banner.py [--variante voll|kompakt|text] [--farbe true|256|mono]",
|
|
388
|
+
file=sys.stderr)
|
|
389
|
+
return 2
|
|
390
|
+
if variante and variante != "text" and os.name == "nt" and sys.stdout.isatty():
|
|
391
|
+
_vt_einschalten(sys.stdout)
|
|
392
|
+
ausgeben(variante=variante, farbe=farbe, umgebung={})
|
|
393
|
+
return 0
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
if __name__ == "__main__":
|
|
397
|
+
sys.exit(main(sys.argv[1:]))
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Dokument-Build (Hauptdokument)
|
|
2
|
+
|
|
3
|
+
Das Hauptdokument wird aus den **34 Kapitelquellen** in `doc/` und den Artefakten des Repositorys assembliert – die Artefakte existieren also genau einmal (Single Source of Truth im Repository) und werden in das Dokument eingebettet. **Seinen Titel trägt es selbst**, in `doc/00-kopf.md`; er steht nicht hier und nicht im Erzeuger. Bis 0.89.0 stand er an beiden Stellen, nannte einen Clientnamen und war seit der Umbenennung überholt (D-313, D-314).
|
|
4
|
+
|
|
5
|
+
## Erzeugung
|
|
6
|
+
|
|
7
|
+
Beide Werkzeuge werden aus der **Projektwurzel** aufgerufen und leiten ihre Pfade selbst ab:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
python .koolie/core/build/assemble.py # -> build/out/hauptdokument.md
|
|
11
|
+
python .koolie/core/build/assemble.py --client claude-code
|
|
12
|
+
python .koolie/core/build/build-docx.py # -> build/out/Koolie_vX.Y.Z.docx
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
`build-docx.py` rendert die acht Mermaid-Diagramme als PNG und konvertiert mit `pandoc`; die normative Textbeschreibung neben jedem Diagramm bleibt erhalten.
|
|
16
|
+
|
|
17
|
+
## Voraussetzungen der Word-Fassung
|
|
18
|
+
|
|
19
|
+
| Werkzeug | Bezug | Prüfung |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| `pandoc` | Paketverwalter des Arbeitsplatzes (`winget install JohnMacFarlane.Pandoc`, `apt install pandoc`, `brew install pandoc`) | `build-docx.py` hält **vor** dem ersten Schritt an und nennt beide fehlenden Namen auf einmal |
|
|
22
|
+
| `mmdc` (Mermaid CLI) | `npm install -g @mermaid-js/mermaid-cli` | dieselbe Vorbedingungsprüfung |
|
|
23
|
+
| ein Chromium-artiger Browser | wird selbst gesucht: `PUPPETEER_EXECUTABLE_PATH`, dann Edge, dann Chrome, dann die üblichen Linux-Pfade | auf einem Windows-Arbeitsplatz ist Edge immer vorhanden – ein eigener Chromium-Download ist unnötig |
|
|
24
|
+
|
|
25
|
+
Das A4-Referenzdokument `ref-a4.docx` wird mitgeliefert; das Inhaltsverzeichnis der Word-Datei ist ein Word-Feld und wird beim ersten Öffnen über „Felder aktualisieren" gefüllt.
|
|
26
|
+
|
|
27
|
+
## Direktiven in den Kapitelquellen (`doc/*.md`)
|
|
28
|
+
|
|
29
|
+
- `{{EMBED:pfad}}` beziehungsweise `{{EMBED:pfad:sprache}}` – Datei als Codeblock einbetten (Agentenanweisungen, Templates, Prompts, Konfigurationen).
|
|
30
|
+
- `{{EMBED-RAW:pfad:verschiebung}}` – Datei als gerenderten Inhalt einbetten; Überschriften werden um die angegebene Ebenenzahl verschoben, YAML-Frontmatter wird als Hinweiszeile dargestellt.
|
|
31
|
+
|
|
32
|
+
## Pflege
|
|
33
|
+
|
|
34
|
+
Kapiteltexte in `doc/` folgen dem Framework-Release-Prozess (Checkliste FW-CL-11 prüft die Konsistenz zwischen Dokument und Repository). `out/` ist Build-Ausgabe und nicht versioniert (`.gitignore`); `BRIEF_*.md` sind Arbeitsunterlagen der Erstellung und nicht Teil des Dokuments.
|