@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,166 @@
|
|
|
1
|
+
# Änderungsantrag `CR-2026-052`
|
|
2
|
+
|
|
3
|
+
| Feld | Inhalt |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Titel | Drei normative Regeln widersprechen sich – K3-Einstufung, Sicherheitskonfiguration, Parallelität |
|
|
6
|
+
| Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
|
|
7
|
+
| Datum | 2026-09-13 |
|
|
8
|
+
| Betroffene Artefakte | `framework/core/02-privacy.md`, `framework/core/09-risk-model.md`, `framework/core/05-working-model.md`, `framework/runtime/root-instruction.md`, `governance/PRIORITY_HIERARCHY.md`, `framework/org-policies/MAPPING_CLASSIFICATION.md`, `tests/EDGE_CASES.md` (neu), `tests/scripts/validate-framework.py` (Prüfungen 29, 30), `tests/scripts/probe-pruefungen.py` |
|
|
9
|
+
| Ebene laut Entscheidungsbaum 6 | **Core und Governance** – es sind Datenschutz-, Sicherheits- und Risikoregeln der Ebene 3 |
|
|
10
|
+
| Art | Befund **B09** des unabhängigen Reviews vom 2026-09-12, P2; **gegengeprüft, im Text bestätigt und in einem Punkt verschärft** |
|
|
11
|
+
| Dringlichkeit | **Paket 4** – das Review entscheidet diese Konflikte ausdrücklich nicht; ohne Entscheidung des `<FRAMEWORK_OWNER>` ist nichts umsetzbar |
|
|
12
|
+
|
|
13
|
+
## 1. Anlass und Problem
|
|
14
|
+
|
|
15
|
+
Drei Regelbereiche geben auf dieselbe Frage verschiedene Antworten. **Alle drei sind
|
|
16
|
+
gegengeprüft**, jede Fundstelle im Text nachgelesen
|
|
17
|
+
(`tests/protocols/2026-09-13-B07-B09-gegenpruefung.md`).
|
|
18
|
+
|
|
19
|
+
### 1.1 K3 – drei Texte, drei Antworten
|
|
20
|
+
|
|
21
|
+
| Stelle | Aussage |
|
|
22
|
+
|---|---|
|
|
23
|
+
| `framework/runtime/root-instruction.md:84` | „Immer K3: … interne Adressen und Umgebungskennungen“ – **ohne Bedingung** |
|
|
24
|
+
| `framework/core/02-privacy.md:33` | dieselbe Kategorie, **„sofern nicht im Overlay ausdrücklich als K1 eingestuft“** |
|
|
25
|
+
| `framework/core/02-privacy.md:42` | das Overlay darf lockern, wenn die Datenschutz- und Vertragsprüfung es erlaubt |
|
|
26
|
+
| `governance/PRIORITY_HIERARCHY.md:31` | „Delegationsverbote und K3 sind ebenenfest“ – **von keiner tieferen Ebene aufhebbar** |
|
|
27
|
+
|
|
28
|
+
**Die Zeilennummern des Reviews stimmen für die Wurzel-Anweisungsdatei nicht** (dort steht 83
|
|
29
|
+
statt 84 und 90 statt 91). Inhaltlich ist der Befund vollständig bestätigt.
|
|
30
|
+
|
|
31
|
+
**Die Gegenprüfung hat zwei eigene Feststellungen ergeben, die das Bild verschieben:**
|
|
32
|
+
|
|
33
|
+
1. **Es ist keine Pattsituation, sondern eine Minderheitsmeinung.** Acht weitere Stellen führen
|
|
34
|
+
dieselbe Liste **ohne Bedingung**: die Laufzeitregel `framework/runtime/rules/10-privacy-security.md`,
|
|
35
|
+
Entscheidungsbaum `decision-trees/01-context-allowed.md`, die Checkliste
|
|
36
|
+
`checklists/02-privacy-context.md`, `onboarding/REFERENCE.md`, `onboarding/QUICKSTART.md`,
|
|
37
|
+
`onboarding/KNOWLEDGE_CHECK.md` sowie `prompts/01-understand-codebase.md` und `prompts/10-documentation.md`. Die Bedingung steht an
|
|
38
|
+
**einer** Stelle – und diese eine Stelle ist die kanonische Langform.
|
|
39
|
+
2. **Die Kurzform ist zwei Kategorien zu kurz.** Abschnitt 2.1 führt acht Kategorien; die
|
|
40
|
+
Wurzel-Anweisungsdatei nannte sechs. Es fehlten **Sicherheitskonfigurationen mit
|
|
41
|
+
Schutzwirkung** und **Inhalte anderer Projekte oder Mandanten** – und die Kurzform ist die
|
|
42
|
+
Fassung, die in jede Sitzung lädt. Die Laufzeitregel `10-*` und die Checkliste führen alle
|
|
43
|
+
acht; der Ausreißer ist die Kurzform. **Das hat das Review nicht gefunden.**
|
|
44
|
+
|
|
45
|
+
Ein zusätzlicher Träger kam dazu: `framework/org-policies/MAPPING_CLASSIFICATION.md:12` bot für
|
|
46
|
+
die Organisationsstufe „vertraulich“ eine Lockerung auf K2 an. Diese Stufe ist Kategorie 7 aus
|
|
47
|
+
Abschnitt 2.1 – die Lockerungszusage widersprach damit derselben Regel.
|
|
48
|
+
|
|
49
|
+
### 1.2 Sicherheitskonfiguration – Freigabe gegen Delegationsverbot
|
|
50
|
+
|
|
51
|
+
`framework/runtime/root-instruction.md:91` lässt die Umsetzung nach dokumentierter Freigabe zu.
|
|
52
|
+
**V6** (`framework/core/09-risk-model.md:64`) nennt „Änderungen an Produktionssystemen,
|
|
53
|
+
Infrastruktur, Berechtigungen, Sicherheitskonfigurationen“ **nicht delegierbar** und lässt nur
|
|
54
|
+
Analyse und Planvorschlag zu. Nach `governance/PRIORITY_HIERARCHY.md` Regel 2.4 ist die V-Liste
|
|
55
|
+
ebenenfest – die Wurzel-Anweisungsdatei kann sie nicht lockern.
|
|
56
|
+
|
|
57
|
+
**Eigene Feststellung:** Der Widerspruch ist nicht vollständig, sondern **teilweise**. Die
|
|
58
|
+
Kontrollstufentabelle desselben Moduls sieht Controlled Modification bei Kontrollstufe hoch
|
|
59
|
+
ausdrücklich vor – „nur nach dokumentierter Freigabe durch `<APPROVAL_ROLE>` und mit begleitender
|
|
60
|
+
Person“ –, und R3 und R10 stufen genau solche Änderungen dorthin ein. Das Framework **will** also,
|
|
61
|
+
dass Authentifizierungslogik im Code bearbeitbar ist. Was V6 meint, ist der Betrieb. Die beiden
|
|
62
|
+
Sätze reden über zwei verschiedene Gegenstände, und keiner sagt das.
|
|
63
|
+
|
|
64
|
+
### 1.3 Parallelität – die Schnittmenge ist leer
|
|
65
|
+
|
|
66
|
+
**R12** (`framework/core/09-risk-model.md:38`) stuft „Hintergrund-Subagenten, Parallelsitzungen
|
|
67
|
+
oder erweiterte Permission-Modi“ als **hoch** ein. Das Arbeitsmodell
|
|
68
|
+
(`framework/core/05-working-model.md:119`) erlaubt Parallelsitzungen „nur für voneinander
|
|
69
|
+
unabhängige Aufgaben der Kontrollstufe **niedrig**“.
|
|
70
|
+
|
|
71
|
+
**Eigene Feststellung, und sie ist die schärfste des Antrags:** Das ist nicht bloß uneinheitlich,
|
|
72
|
+
sondern **zirkulär**. Die Kontrollstufe ist der höchste Treffer über alle dreizehn Faktoren
|
|
73
|
+
(Abschnitt 5 desselben Moduls). Wer parallel arbeitet, trifft R12 hoch – die Aufgabe ist damit
|
|
74
|
+
Kontrollstufe hoch und kann nie „niedrig“ sein. **Die Regel des Arbeitsmodells war nie
|
|
75
|
+
erfüllbar.** Derselbe Befundtyp wie B08, wo die Aktivierung eine Prüfung verlangt, die bereits
|
|
76
|
+
Aktivität voraussetzt.
|
|
77
|
+
|
|
78
|
+
Der Vorschlag des Reviews – Parallelität nur im für Kontrollstufe hoch zulässigen Modus – löst den
|
|
79
|
+
Widerspruch **nicht**, weil er R12 unangetastet lässt: Schon ein rein lesender Subagent machte
|
|
80
|
+
damit jede Analyse zu einer Aufgabe der Kontrollstufe hoch, mit Architektur- und Security-Review
|
|
81
|
+
und vollständigem Sitzungsprotokoll. Das widerspricht Abschnitt 3.1 desselben Arbeitsmodells, der
|
|
82
|
+
ein rein lesendes Agentenprofil für M1 ausdrücklich erlaubt.
|
|
83
|
+
|
|
84
|
+
## 2. Vorgeschlagene Änderung
|
|
85
|
+
|
|
86
|
+
1. **Die acht Kategorien aus Abschnitt 2.1 sind unbedingt.** Die Bedingung an der sechsten
|
|
87
|
+
Kategorie entfällt; Abschnitt 2.2 Regel 4 hält fest, dass keine Kategorie aus 2.1 auf irgendeinem
|
|
88
|
+
Weg gelockert werden kann – nicht durch das Overlay, nicht durch die Datenschutz- und
|
|
89
|
+
Vertragsprüfung, nicht durch den Ausnahmeprozess. Änderbar bleibt die Liste über den
|
|
90
|
+
Änderungsprozess des Frameworks, also auf ihrer eigenen Ebene.
|
|
91
|
+
2. **Die Kurzform führt alle acht Kategorien** und nennt die bereinigte Ableitung als den Weg, der
|
|
92
|
+
offen bleibt. Die Abbildung des Organisationsschemas verliert ihre Lockerungszusage.
|
|
93
|
+
`governance/PRIORITY_HIERARCHY.md` bekommt die Fundstellen beider ebenenfester Listen und
|
|
94
|
+
Befund 7 in der Widerspruchsprüfung.
|
|
95
|
+
3. **V6 erfasst den Betrieb, nicht die Anwendungslogik.** Ein normativer Abgrenzungsabschnitt hinter
|
|
96
|
+
der V-Liste sagt, was auf welche Seite gehört, und nennt das Kriterium: Wirkt die Änderung über
|
|
97
|
+
Build, Review und Quality Gates des Projekts, oder ist die geänderte Datei selbst die
|
|
98
|
+
Berechtigung eines laufenden Systems? **Sicherheitskonfiguration als Code gehört zum Betrieb** –
|
|
99
|
+
Infrastrukturbeschreibungen, Richtlinien- und Berechtigungsdateien, die Berechtigungsdatei
|
|
100
|
+
dieses Frameworks. Die Wurzel-Anweisungsdatei trägt beide Sätze.
|
|
101
|
+
4. **R12 unterscheidet nach Schreibziel und Aufsicht, nicht nach der Zahl der Sitzungen:** rein
|
|
102
|
+
lesende Parallelarbeit unter Aufsicht niedrig, schreibende auf disjunkten Zielen mittel,
|
|
103
|
+
gemeinsame Schreibziele hoch. Erweiterte Permission-Modi bleiben hoch. Das Arbeitsmodell nennt
|
|
104
|
+
statt einer Kontrollstufe die **Voraussetzungen** und verweist für die Einstufung auf R12.
|
|
105
|
+
5. **Zwölf Grenzfälle** in `tests/EDGE_CASES.md`, je mit Entscheidung, Betriebsmodus,
|
|
106
|
+
Kontrollstufe, Rollen und Fundstelle – das Abnahmekriterium des Reviews, prüfbar gemacht.
|
|
107
|
+
6. **Prüfung 29** vergleicht die K3-Liste in fünf Fassungen und weist eine Bedingung zurück.
|
|
108
|
+
**Prüfung 30** prüft die Grenzfalltabelle auf Vollständigkeit.
|
|
109
|
+
|
|
110
|
+
## 3. Was dieser Antrag nicht ändert
|
|
111
|
+
|
|
112
|
+
- **Er ändert das Schutzmodell nicht.** Die Kategorien bleiben, wie sie sind; entfernt wird eine
|
|
113
|
+
Ausnahme, nicht eine Kategorie. Die Alternative – technische Metadaten aus der absoluten Liste
|
|
114
|
+
ausgliedern – hätte das Modell geändert und eine Entscheidung des
|
|
115
|
+
`<DATA_PROTECTION_CONTACT>` gebraucht.
|
|
116
|
+
- **Er erlaubt keine neue Umsetzung.** Die Abgrenzung zu V6 beschreibt, was nach der bestehenden
|
|
117
|
+
Kontrollstufentabelle ohnehin gilt. Was heute nicht delegierbar ist, bleibt es.
|
|
118
|
+
- **Er belegt keine technische Durchsetzung.** Ob ein Client eine Einstufung erzwingt, steht in
|
|
119
|
+
seiner Fähigkeitsmatrix. Die Grenzfälle nennen Einstufungen, keine Mechanismen.
|
|
120
|
+
- **Er prüft nicht, ob ein KI-Client die Grenzfälle richtig einstuft.** Das ist eine Sitzung, kein
|
|
121
|
+
Skript – `FW-KO-05` im Testkatalog.
|
|
122
|
+
|
|
123
|
+
## 4. Prüffragen
|
|
124
|
+
|
|
125
|
+
- [x] Richtige Ebene: Core (Ebene 3) und Governance. Datenschutz- und Sicherheitsregeln stehen dort
|
|
126
|
+
und nur dort (P10).
|
|
127
|
+
- [x] Verschärfungsprinzip: **verschärft dreifach.** Eine Ausnahme entfällt, zwei fehlende
|
|
128
|
+
Kategorien kommen in die Kurzform, die Sicherheitsgrenze wird für den Betrieb absolut. Die
|
|
129
|
+
R12-Neufassung ist **keine Lockerung**, sondern die Auflösung einer leeren Schnittmenge: Was
|
|
130
|
+
vorher galt, war nicht erfüllbar. Erweiterte Permission-Modi bleiben hoch.
|
|
131
|
+
- [x] Widerspruchsfreiheit: gelesen wurden `governance/PRIORITY_HIERARCHY.md` (Regeln 2.1, 2.4),
|
|
132
|
+
`framework/core/02-privacy.md`, `framework/core/09-risk-model.md` (R3, R10, R12, V4, V6, V10,
|
|
133
|
+
Kontrollstufen), `framework/core/05-working-model.md` (3.1), `decision-trees/01-context-allowed.md`,
|
|
134
|
+
`decision-trees/06-rule-placement.md`, `checklists/02-privacy-context.md`, D-23, D-35, D-47.
|
|
135
|
+
- [x] Laufzeitfassungen: Wurzel-Anweisungsdatei und Regelablage `10-*` betroffen; beide entstehen
|
|
136
|
+
aus dem Kern und werden mit der Installation erneuert. Kein Pack-Eingriff nötig.
|
|
137
|
+
- [x] Belegstatus: Textbefund, **im Text gegengeprüft** – jede Fundstelle nachgelesen, die
|
|
138
|
+
Zeilennummern des Reviews berichtigt. Keine Messung nötig und keine behauptet.
|
|
139
|
+
- [x] Test- und Validierungsbedarf: **sechs Sonden und zwei Gegenproben** (Prüfungen 29 und 30), je
|
|
140
|
+
mit einer Sonde auf den verlorenen Anker. Gegenbeweis gegen 0.31.0.
|
|
141
|
+
- [x] Overlays: betroffen ist ein Overlay, das interne Kennungen als K1 führt – es wird damit
|
|
142
|
+
ungültig. Migrationshinweis im `CHANGELOG.md`.
|
|
143
|
+
- [ ] Dokumentation: `CHANGELOG.md`, Decision Log (D-52 bis D-54), Roadmap, Testkatalog.
|
|
144
|
+
|
|
145
|
+
## 5. Vorlage zur Entscheidung
|
|
146
|
+
|
|
147
|
+
| Nr. | Frage | Auflösung | Preis |
|
|
148
|
+
|---|---|---|---|
|
|
149
|
+
| E1 | Welche K3-Kategorien sind unbedingt, welche einstufbar? | **Alle acht aus Abschnitt 2.1 sind unbedingt**, die Overlay-Ausnahme entfällt. Praktikabel bleibt die Lage über die bereinigte Ableitung: Platzhalter statt Hostname, das Original bleibt ausgeschlossen – das verlangt die Wurzel-Anweisungsdatei ohnehin. Sieben von acht Texten standen bereits so | Eine Konfigurationsdatei mit internen Hostnamen darf nicht unbereinigt bereitgestellt werden, und die Organisationsstufe „vertraulich“ verliert den K2-Pfad. Gewinn: **Die Kurzform, die tatsächlich in jede Sitzung lädt, ist erstmals wahr** |
|
|
150
|
+
| E2 | Bleibt die Möglichkeit, interne Adressen einzustufen, auf Ebene 1–3 erhalten? | **Nein.** Sie wäre der kleinere Eingriff, aber die Kurzform müsste den Vorbehalt mittragen – ein Bedingungssatz in genau dem Text, der ohne Nachlesen gelten soll. Dieses Projekt kennt den Befundtyp: eine Zusage, die mehr verspricht, als sie leistet. Eine unbedingte Regel, die stimmt, ist mehr wert als eine bedingte, die niemand nachliest | Weniger fachlicher Spielraum. Wer ihn braucht, ändert die Liste über den Änderungsprozess – sichtbar und mit Begründung, statt still im Overlay |
|
|
151
|
+
| E3 | Welche sicherheitsrelevanten Codeänderungen sind mit Freigabe bearbeitbar? | **Lokale Anwendungslogik** – Authentifizierungs- und Autorisierungsprüfungen im Quellcode, Kryptonutzung, Sitzungsverwaltung – bei Kontrollstufe hoch, mit Freigabe von `<APPROVAL_ROLE>` **und** `<SECURITY_CONTACT>` und mit begleitender Person. **Betrieb, Infrastruktur und tatsächliche Berechtigungen bleiben V6**, absolut | Die Grenze braucht ein entscheidbares Kriterium. Es lautet: Wirkt die Änderung über Build, Review und Quality Gates, oder **ist** die Datei die Berechtigung? Die Alternative – jede sicherheitsrelevante Umsetzung auszuschließen – wäre einfacher und widerspräche R3, R10 und der Kontrollstufentabelle |
|
|
152
|
+
| E4 | Auf welche Seite gehört Sicherheitskonfiguration als Code? | **Zum Betrieb, also V6** – trotz Ablage im Repositorium und trotz Review-Weg. Der Inhalt der Datei **ist** die Berechtigung; ein Fehler wirkt beim nächsten Deployment, nicht erst nach einer menschlichen Konfiguration. Das ist der Grenzfall, an dem die Regel entschieden wird, und er steht in der Tabelle (G-06) | Infrastrukturbeschreibungen sind damit nicht bearbeitbar, auch nicht mit Freigabe. Das trifft Projekte, die alles als Code führen – und ist der Preis dafür, dass die Grenze überhaupt eine ist |
|
|
153
|
+
| E5 | Wird das Aufgabenrisiko vom Koordinationsrisiko getrennt? | **Nein – R12 wird neu geschnitten**, nach Schreibziel und Aufsicht statt nach der Zahl der Sitzungen. Ein Faktor, drei neue Spalten, kein neuer Risikofaktor. Das löst die leere Schnittmenge auf und erhält die Einstufung, die gemessen ist: erweiterte Permission-Modi bleiben hoch (D-35) | Ein Faktor trägt weiterhin zwei Gedanken. Die Alternative – ein vierzehnter Faktor für das Koordinationsrisiko – wäre saubere Dimensionentrennung, verlangte aber eine zweidimensionale Einstufung und eine neue Regel für den „höchsten Treffer“. Für einen Widerspruch, der sich mit drei Spalten auflösen lässt, ist das zu viel Modell |
|
|
154
|
+
| E6 | Wie wird die Wirkung nachgewiesen, wo es nichts zu messen gibt? | **Zwei maschinelle Prüfungen und eine Grenzfalltabelle.** Prüfung 29 vergleicht die K3-Liste über fünf Fassungen und weist Bedingungen zurück – sie hätte beide Befunde dieses Antrags gefunden. Prüfung 30 hält die Grenzfalltabelle vollständig. Je Prüfung eine Sonde auf den **verlorenen Anker**: Eine Konsistenzprüfung, die ihren Suchtext verliert, besteht leise | Für die Abgrenzung zu V6 und für R12 gibt es keine maschinelle Prüfung – ein Skript kann eine Einstufung nicht beurteilen. Dort trägt die Grenzfalltabelle, geprüft in einer Sitzung (`FW-KO-05`). Das ist ausgewiesen, nicht überspielt |
|
|
155
|
+
|
|
156
|
+
## 6. Entscheidung
|
|
157
|
+
|
|
158
|
+
| Feld | Inhalt |
|
|
159
|
+
|---|---|
|
|
160
|
+
| Entscheidung | **Angenommen, alle sechs Fragen wie vorgelegt.** E1 alle acht Kategorien unbedingt, Overlay-Ausnahme entfällt; E2 keine Einstufungsmöglichkeit auf Ebene 1–3; E3 Trennung nach Wirkungsweg, Anwendungslogik bei Kontrollstufe hoch bearbeitbar; E4 Sicherheitskonfiguration als Code gehört zu V6; E5 R12 wird neu geschnitten, kein neuer Risikofaktor; E6 Nachweis über Prüfungen 29 und 30 plus Grenzfalltabelle |
|
|
161
|
+
| Datum | 2026-09-13 |
|
|
162
|
+
| Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
|
|
163
|
+
| Decision-Log-Einträge | D-52 (K3 unbedingt), D-53 (Betrieb gegen Anwendungslogik), D-54 (R12 nach Schreibziel und Aufsicht) |
|
|
164
|
+
| Auflagen | **Der Preis gehört in den Migrationshinweis, nicht nur in diesen Antrag.** Ein Overlay, das interne Kennungen als K1 führt, wird mit 0.32.0 ungültig, und die Organisationsstufe „vertraulich“ verliert ihren K2-Pfad – beides betrifft ein übernehmendes Projekt unmittelbar und steht im `CHANGELOG.md`. **Die zwei fehlenden Kategorien der Kurzform sind mitzuberichtigen**, obwohl der Befund sie nicht nennt: Eine Fassung, die sechs von acht führt, ist der eigentliche Schaden der Inkonsistenz. **Nachgewiesen:** sechs Sonden, zwei Gegenproben, Gegenbeweis gegen 0.31.0 – dort melden die neuen Prüfungen die drei Befunde dieses Antrags von selbst. **Offen bleibt:** Für die V6-Abgrenzung und für R12 gibt es keine maschinelle Prüfung; sie tragen über die Grenzfalltabelle und `FW-KO-05`, und dieser Test ist eine Sitzung und steht auf `offen` |
|
|
165
|
+
| Ziel-Release | `0.32.0` |
|
|
166
|
+
| Umsetzung | umgesetzt mit `0.32.0` |
|
package/.koolie/core/governance/change-requests/CR-2026-053-lesesperre-und-entwicklungsprofil.md
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Änderungsantrag `CR-2026-053`
|
|
2
|
+
|
|
3
|
+
| Feld | Inhalt |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Titel | Der Schreibschutz der Regelquellen war als Leseverbot ausgeschrieben – und der Einstieg in das eigene Repositorium war nirgends geregelt |
|
|
6
|
+
| Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
|
|
7
|
+
| Datum | 2026-09-13 |
|
|
8
|
+
| Betroffene Artefakte | `templates/project-overlay/OVERLAY.md` (Abschnitt 4), `framework/runtime/rules/20-project-overlay.md`, `framework/runtime/root-instruction.md` (Abschnitte 3 und 6), fünf Skills (`fw-repo-analyze`, `fw-code-explain`, `fw-change-analyze`, `fw-error-analyze`, `fw-review-support`), `governance/FRAMEWORK_DEV_PROFILE.md` (neu), `README.md`, `tests/scripts/validate-framework.py` (Prüfung 28), `tests/scripts/probe-pruefungen.py`, `tests/EDGE_CASES.md` |
|
|
9
|
+
| Ebene laut Entscheidungsbaum 6 | **Core und Governance**; die Overlay-Vorlage ist Kern-Artefakt, das ausgefüllte Overlay bleibt Ebene 4 |
|
|
10
|
+
| Art | Befund **B07** des unabhängigen Reviews vom 2026-09-12, P2; **gegengeprüft, bestätigt und erheblich verschärft** |
|
|
11
|
+
| Dringlichkeit | **Paket 4**, gemeinsam mit `CR-2026-052`; B07 hing an der K3-Entscheidung |
|
|
12
|
+
|
|
13
|
+
## 1. Anlass und Problem
|
|
14
|
+
|
|
15
|
+
### 1.1 Der Befund ist schlimmer als beschrieben
|
|
16
|
+
|
|
17
|
+
Das Review nennt es eine Vermischung von Integritäts- und Vertraulichkeitsschutz: Die
|
|
18
|
+
Overlay-Vorlage führt unter „weder lesen noch ändern“ auch Regelablage, Wurzel-Anweisungsdatei,
|
|
19
|
+
Overlay und Framework auf – die der Agent laden **soll**.
|
|
20
|
+
|
|
21
|
+
**Die Gegenprüfung zeigt eine Wirkungskette, die der Bericht nicht nennt.** Beide technischen
|
|
22
|
+
Schichten trennen die beiden Schutzziele längst korrekt:
|
|
23
|
+
|
|
24
|
+
| Schicht | Vertraulichkeit | Integrität |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| `framework/runtime/permissions.json` | `read deny <EXCLUDED_PATHS>` und die Secret-Muster | `write deny <ROOT_INSTRUCTION_FILE>`, `<RUNTIME_DIR>/**`, `<CORE_DIR>/**`, `project-overlay/**` – bei `read allow **` |
|
|
27
|
+
| `tests/scripts/hook-check-secrets.py` | `SECRET_PATH_PATTERNS`: lesend **und** schreibend blockiert | `STRUKTURPFAD`-Liste: nur schreibend; `PROTECTED_WRITE_PATH_PATTERNS` für das Kernverzeichnis |
|
|
28
|
+
|
|
29
|
+
Die Trennung ist seit D-30 gebaut und im Skript kommentiert. Falsch ist allein der **Text** – und
|
|
30
|
+
zwar an einer Stelle, die in die Technik zurückwirkt: `<EXCLUDED_PATHS>` ist der Platzhalter, der
|
|
31
|
+
in die **`read`-Verweigerung** eingesetzt wird. Ein Projekt, das die Vorlage wörtlich ausfüllt,
|
|
32
|
+
erzeugt damit eine **Lesesperre auf seine eigenen Regeldateien** – auf genau die Anweisungen, die
|
|
33
|
+
der KI-Client befolgen soll. Das ist kein Dokumentenwiderspruch mehr, sondern ein Fehler, der die
|
|
34
|
+
erzeugte Berechtigungsdatei erreicht.
|
|
35
|
+
|
|
36
|
+
**Fundstellen, gegengeprüft:** `templates/project-overlay/OVERLAY.md:71` und
|
|
37
|
+
`framework/runtime/rules/20-project-overlay.md:23`. Die Wurzel-Anweisungsdatei macht es in
|
|
38
|
+
Abschnitt 3 (Lesen) und Abschnitt 6 (Ändern) **richtig** – sie bekommt die Lesesperre nur
|
|
39
|
+
zugeliefert. Der Befund sitzt also nicht dort, wo das Review ihn vermutet; die Zeilenangaben
|
|
40
|
+
`:37` und `:60` treffen einmal (37) und einmal nicht (die Verbotsliste steht auf 57).
|
|
41
|
+
|
|
42
|
+
**Nebenbefund, eigene Feststellung:** `<CORE_DIR>/**` steht in der Berechtigungsdatei als
|
|
43
|
+
`write`-Verweigerung, **aber nicht** in der Verbotsliste der Wurzel-Anweisungsdatei. Der
|
|
44
|
+
Mechanismus schützt mehr, als der Text sagt – der wiederkehrende Befundtyp dieses Projekts mit
|
|
45
|
+
umgekehrtem Vorzeichen. Ein Agent bekäme eine Blockierung, die ihm niemand angekündigt hat.
|
|
46
|
+
|
|
47
|
+
### 1.2 Der Einstieg in das eigene Repositorium war nirgends geregelt
|
|
48
|
+
|
|
49
|
+
Im Quellrepositorium bleibt das Overlay absichtlich Vorlage. Der Overlay-Status steht auf
|
|
50
|
+
`<TBD: aktiv | inaktiv>`, und die Wurzel-Anweisungsdatei sagt für diesen Fall: „arbeitest du nur
|
|
51
|
+
lesend“. Die fünf Analyseskills verlangten `<ALLOWED_PATHS>` oder erlaubten ohne Overlay
|
|
52
|
+
ausdrücklich nur Übungsrepositorys. Für die Entwicklung und Prüfung von Leitwerk **selbst** gab es
|
|
53
|
+
keinen benannten Weg – auch nicht für das Ablegen eines Ergebnisdokuments.
|
|
54
|
+
|
|
55
|
+
**Das ist nicht theoretisch, sondern die Arbeitsbedingung jeder Sitzung dieses Projekts** – die
|
|
56
|
+
dieser hier eingeschlossen. Das externe Review musste dafür den Auftrag als Berechtigung behandeln
|
|
57
|
+
und hat es ausgewiesen.
|
|
58
|
+
|
|
59
|
+
## 2. Vorgeschlagene Änderung
|
|
60
|
+
|
|
61
|
+
1. **`<EXCLUDED_PATHS>` wird zur reinen Vertraulichkeitskategorie.** In der Overlay-Vorlage und in
|
|
62
|
+
der Laufzeitregel stehen dort nur noch die Secret-Dateien; die Strukturpfade des Frameworks
|
|
63
|
+
wandern in `<READ_ONLY_PATHS>` – die Kategorie „Lesen erlaubt, Ändern nie“, die es bereits gibt
|
|
64
|
+
und die die Skills als Lesebereich schon anerkennen. **Keine neue Kategorie, keine neue
|
|
65
|
+
Semantik:** Damit sagt der Text dasselbe wie beide Mechanismen.
|
|
66
|
+
2. **Die Overlay-Vorlage erklärt den Unterschied an der Stelle, an der er gebraucht wird** – mit
|
|
67
|
+
dem Satz, dass `<EXCLUDED_PATHS>` zu einer `read`- **und** `write`-Verweigerung wird und wer die
|
|
68
|
+
Strukturpfade dort einträgt, den Lesezugriff auf die eigenen Regeln sperrt.
|
|
69
|
+
3. **Die Wurzel-Anweisungsdatei sagt beides ausdrücklich:** in Abschnitt 3, dass der Schreibschutz
|
|
70
|
+
kein Leseverbot ist und die Regelquellen gelesen werden sollen; in Abschnitt 6 tritt
|
|
71
|
+
`<CORE_DIR>/` in die Verbotsliste ein – der Text zieht dem Mechanismus nach.
|
|
72
|
+
4. **Ein Entwicklungsprofil für das Quellrepositorium** (`governance/FRAMEWORK_DEV_PROFILE.md`):
|
|
73
|
+
zwei Einsatzkontexte, Geltungsbereich aus dem Inhalt des Repositoriums statt aus einem
|
|
74
|
+
Verzeichnisnamen, Inhalt ist K0 und damit lesbar, Berichtspfad `tests/protocols/`, Änderungen
|
|
75
|
+
nur über den Änderungsprozess (V10 bleibt), freigegebene Prüfkommandos – und ein Abschnitt
|
|
76
|
+
„Was dieses Profil nicht leistet“.
|
|
77
|
+
5. **Die fünf Analyseskills** nennen neben dem Übungsrepositorium das Quellrepositorium des
|
|
78
|
+
Frameworks. Fünf, nicht einer: Dieselbe Vorbedingung stand in allen fünf, und eine Ausnahme in
|
|
79
|
+
einem Skill wäre die nächste Inkonsistenz.
|
|
80
|
+
6. **Prüfung 28** findet einen Strukturpfad in der Deklaration von `<EXCLUDED_PATHS>` – in der
|
|
81
|
+
Vorlage, in der Laufzeitregel, im ausgefüllten Overlay und in der installierten Regelablage.
|
|
82
|
+
Sie meldet zusätzlich, wenn die **Beschriftung** der Deklaration verloren geht, weil sie sonst
|
|
83
|
+
leise bestünde.
|
|
84
|
+
|
|
85
|
+
## 3. Was dieser Antrag nicht ändert
|
|
86
|
+
|
|
87
|
+
- **Er hebt keinen Schreibschutz auf.** `<CORE_DIR>/**`, `<RUNTIME_DIR>/**`,
|
|
88
|
+
`<ROOT_INSTRUCTION_FILE>` und `project-overlay/**` bleiben schreibgesperrt – auch im
|
|
89
|
+
Quellrepositorium. Das Entwicklungsprofil ist ein Dokument, kein Schalter.
|
|
90
|
+
- **Er macht keine Projektdatei lesbar, die es nicht war.** Ausgeschlossen bleibt, was Abschnitt 2.1
|
|
91
|
+
des Datenschutzmodells ausschließt. Eine Datei wird nicht dadurch lesbar, dass sie neben einer
|
|
92
|
+
Regeldatei liegt.
|
|
93
|
+
- **Er löst B08 nicht.** Die Zirkularität der Aktivierung – `--strict-overlay` verlangt, was es
|
|
94
|
+
herstellen soll – ist Paket 5 und bleibt offen.
|
|
95
|
+
- **Er beseitigt die Lücke im Shell-Kanal nicht.** Sie ist gemessen (B04), sie ist der Weg, über
|
|
96
|
+
den Änderungen an diesem Framework heute entstehen, und sie steht als solche im Profil.
|
|
97
|
+
|
|
98
|
+
## 4. Prüffragen
|
|
99
|
+
|
|
100
|
+
- [x] Richtige Ebene: Kern-Artefakte und Governance. Das ausgefüllte Overlay bleibt Ebene 4; die
|
|
101
|
+
Vorlage gehört dem Kern.
|
|
102
|
+
- [x] Verschärfungsprinzip: **verschärft zweimal, lockert einmal – und die Lockerung ist die
|
|
103
|
+
Berichtigung einer falschen Zusage.** Verschärft: `<CORE_DIR>/` in der Verbotsliste, Prüfung
|
|
104
|
+
28. Gelockert: Die Regelquellen sind lesbar – sie waren es technisch immer, nur der Text
|
|
105
|
+
behauptete etwas anderes. **Eine Lesesperre, die kein Mechanismus erhebt und die ihren
|
|
106
|
+
eigenen Regelträger sperrt, ist keine Schutzwirkung, die man verteidigt.**
|
|
107
|
+
- [x] Widerspruchsfreiheit: gelesen wurden D-22 (das gesamte Kernverzeichnis ist geschützt), D-30
|
|
108
|
+
(zwei Schutzziele, zwei Listen), D-47 (Zusagen je Zugriffskanal), V10, `framework/core/02-privacy.md`
|
|
109
|
+
Abschnitt 2 (K0-Definition), `framework/runtime/permissions.json`,
|
|
110
|
+
`tests/scripts/hook-check-secrets.py`, die fünf Skill-Vorbedingungen.
|
|
111
|
+
- [x] Laufzeitfassungen: Wurzel-Anweisungsdatei und Regelablage `20-*` betroffen, beide erzeugt aus
|
|
112
|
+
dem Kern. **Migrationshinweis nötig:** Ein bestehendes Projekt muss seine
|
|
113
|
+
`<EXCLUDED_PATHS>`-Liste durchsehen – `--update` erneuert die Berechtigungsdatei nicht.
|
|
114
|
+
- [x] Belegstatus: **im Code und im Text gegengeprüft.** Die Trennung beider Mechanismen ist an
|
|
115
|
+
`permissions.json` und am Hook-Skript nachgelesen, nicht abgeleitet.
|
|
116
|
+
- [x] Test- und Validierungsbedarf: **drei Sonden und eine Gegenprobe** für Prüfung 28. Die
|
|
117
|
+
Gegenprobe ist die wichtigere: Beide Träger erklären im Fließtext, dass die Strukturpfade
|
|
118
|
+
gerade **nicht** hierher gehören, und nennen dabei beides in einer Zeile.
|
|
119
|
+
- [x] Overlays: Jedes bestehende Overlay, das der Vorlage gefolgt ist, trägt den Fehler. Prüfung 28
|
|
120
|
+
findet ihn beim nächsten Lauf.
|
|
121
|
+
- [ ] Dokumentation: `CHANGELOG.md` mit Migrationshinweis, Decision Log (D-55, D-56), Roadmap,
|
|
122
|
+
`README.md`, Grenzfälle G-10 bis G-12.
|
|
123
|
+
|
|
124
|
+
## 5. Vorlage zur Entscheidung
|
|
125
|
+
|
|
126
|
+
| Nr. | Frage | Auflösung | Preis |
|
|
127
|
+
|---|---|---|---|
|
|
128
|
+
| E1 | Wohin gehören die Strukturpfade des Frameworks? | **In `<READ_ONLY_PATHS>`.** Die Kategorie existiert, heißt „Lesen erlaubt, Ändern nie“ und wird von den Skills bereits als zulässiger Lesebereich geführt. Beide Mechanismen machen genau diese Unterscheidung. Es gibt hier keine Ermessensfrage – nur einen Text, der seiner Technik nachzieht | `<READ_ONLY_PATHS>` trug bisher nur Projektwerte (Schnittstellenverträge, Migrationen) und bekommt feste Framework-Einträge. Und: Die Kategorie wird **nicht** in die Berechtigungsdatei abgebildet – der Schreibschutz dieser Pfade kommt weiterhin aus den festen `write`-deny-Regeln, nicht aus dem Overlay. Das ist ausgewiesen |
|
|
129
|
+
| E2 | Bekommt das Quellrepositorium eine technische Ausnahme? | **Nein. Ein Dokument, kein Schalter.** Das Profil benennt den Kontext, leitet die Lesefreigabe aus der Kontextklasse K0 ab und lässt die Schranke, wo sie ist: beim Änderungsprozess und bei der menschlichen Freigabe | **Die Selbstanwendung bleibt unvollständig, und zwar über eine gemessene Lücke:** Änderungen an diesem Framework entstehen über den Shell-Kanal, den der Hook nicht erfasst. Das steht im Profil, statt verschwiegen zu werden. Ein abschwächender Schalter wäre in jeder Installation ausgeliefert – genau die Bauform, aus der in diesem Projekt die Befunde entstehen |
|
|
130
|
+
| E3 | Was passiert, wenn Paket 6 den Shell-Weg schließt? | **Offen, als Klärungspunkt K-32 aufgenommen.** Dann braucht die Entwicklung dieses Frameworks einen ausdrücklich entschiedenen Weg – und die Entscheidung fällt dort, wo die Durchsetzung gebaut wird, nicht hier | Eine bewusste Schuld. Sie jetzt zu entscheiden hieße, einen Schalter für einen Mechanismus zu bauen, den es noch nicht gibt |
|
|
131
|
+
| E4 | Alle fünf Skills anfassen, obwohl der Befund einen nennt? | **Ja.** Dieselbe Vorbedingung steht wörtlich in fünf Skills. Vier davon stehenzulassen wäre dieselbe Inkonsistenz, nur kleiner – und das Abnahmekriterium des Reviews verlangt ausdrücklich, dass Skills dieselbe Einstufung tragen | Fünf Versionsanhebungen und fünf Einträge in den Skill-Änderungsverläufen; der Validator erzwingt beides |
|
|
132
|
+
| E5 | Wie verhindert Prüfung 28, dass sie den richtigen Text beanstandet? | **Sie prüft die Deklarationszeile, nicht jede Nennung** – erkannt an der Beschriftung „Ausgeschlossene Pfade“. Beide Träger erklären im Fließtext das Gegenteil und nennen dabei beides in einer Zeile; eine Prüfung, die jede Nennung meldet, wäre unbrauchbar. **Und weil eine verlorene Beschriftung eine Prüfung erzeugt, die leise besteht, ist deren Fehlen selbst ein Fehler** | Wer die Zeile umbenennt und die Beschriftung mit umschreibt, entgeht der Prüfung nicht – aber die Prüfung meldet dann einen fehlenden Anker statt der Sache. Das ist der bessere Fehlerfall: sichtbar statt still |
|
|
133
|
+
|
|
134
|
+
## 6. Entscheidung
|
|
135
|
+
|
|
136
|
+
| Feld | Inhalt |
|
|
137
|
+
|---|---|
|
|
138
|
+
| Entscheidung | **Angenommen, alle fünf Fragen wie vorgelegt.** E1 Strukturpfade nach `<READ_ONLY_PATHS>`; E2 dokumentiertes Entwicklungsprofil ohne technische Ausnahme; E3 die Folgefrage wird als K-32 aufgenommen; E4 alle fünf Skills; E5 Prüfung 28 prüft die Deklaration und meldet den verlorenen Anker |
|
|
139
|
+
| Datum | 2026-09-13 |
|
|
140
|
+
| Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
|
|
141
|
+
| Decision-Log-Einträge | D-55 (ein Schreibschutz ist kein Leseverbot), D-56 (Entwicklungsprofil des Quellrepositoriums) |
|
|
142
|
+
| Auflagen | **Das Profil muss die Lücke benennen, an der es hängt.** Ein Entwicklungsprofil, das die Selbstanwendung behauptet, ohne zu sagen, dass ihr wirksamer Teil auf einem gemessenen Loch im Shell-Kanal beruht, wäre derselbe Befundtyp eine Ebene höher. Der Abschnitt „Was dieses Profil nicht leistet“ ist deshalb Pflichtbestandteil, nicht Beigabe. **Der Migrationshinweis gehört in das `CHANGELOG.md`:** Ein bestehendes Projekt muss seine `<EXCLUDED_PATHS>`-Liste durchsehen, und `--update` erneuert die Berechtigungsdatei nicht. **Nachgewiesen:** drei Sonden, eine Gegenprobe, Gegenbeweis gegen 0.31.0 – dort meldet Prüfung 28 vier Fundstellen, zwei in der Quelle und zwei in der Installation. **Offen bleibt:** K-32, und die Abbildung von `<READ_ONLY_PATHS>` in die Berechtigungsdatei – die Kategorie ist heute rein textuell |
|
|
143
|
+
| Ziel-Release | `0.32.0` |
|
|
144
|
+
| Umsetzung | umgesetzt mit `0.32.0` |
|
package/.koolie/core/governance/change-requests/CR-2026-054-aktivierung-verlangt-aktivitaet.md
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# Änderungsantrag `CR-2026-054`
|
|
2
|
+
|
|
3
|
+
| Feld | Inhalt |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Titel | Die Aktivierung verlangte einen Lauf, der Aktivität voraussetzt – und der Status-Hook entschied sie nach der ersten Datei |
|
|
6
|
+
| Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
|
|
7
|
+
| Datum | 2026-09-13 |
|
|
8
|
+
| Betroffene Artefakte | `tests/scripts/validate-framework.py` (neuer Schalter `--check-overlay-ready`, Prüfung 9a), `tests/scripts/overlay_status.py` (neu), `tests/scripts/hook-overlay-status.py`, `templates/project-overlay/OVERLAY.md` (Abschnitt 21), `checklists/10-project-adoption.md`, `docs/ADOPTION_GUIDE.md` (Schritte 7 und 9), `tests/scripts/probe-pruefungen.py` |
|
|
9
|
+
| Ebene laut Entscheidungsbaum 6 | **Kern** – Prüfwerkzeug, Hook und Übernahmeablauf; das ausgefüllte Overlay bleibt Ebene 4 |
|
|
10
|
+
| Art | Befund **B08** des unabhängigen Reviews vom 2026-09-12, P2; **gegengeprüft, bestätigt und um einen Defekt erweitert** |
|
|
11
|
+
| Dringlichkeit | **Paket 5**; Voraussetzung B02 ist seit 0.28.0 erfüllt |
|
|
12
|
+
|
|
13
|
+
## 1. Anlass und Problem
|
|
14
|
+
|
|
15
|
+
### 1.1 Die Zirkularität ist im Ablauf dreifach verankert
|
|
16
|
+
|
|
17
|
+
| Stelle | Aussage |
|
|
18
|
+
|---|---|
|
|
19
|
+
| `docs/ADOPTION_GUIDE.md` Schritt 7 | fährt `validate-framework.py --strict-overlay` |
|
|
20
|
+
| `docs/ADOPTION_GUIDE.md` Schritt 9 | setzt den Overlay-Status **danach** auf `aktiv` |
|
|
21
|
+
| `checklists/10-project-adoption.md`, Kopfzeile „Wann“ | gilt „**vor** dem Setzen des Overlay-Status auf `aktiv`“ |
|
|
22
|
+
| ebenda, MUSS-Punkt | verlangt denselben Lauf ohne Fehler |
|
|
23
|
+
| `templates/project-overlay/OVERLAY.md` Abschnitt 21 | Status wird `aktiv`, **wenn** Checkliste **und** Lauf durch sind |
|
|
24
|
+
|
|
25
|
+
`check_strict_overlay` verlangt den Status **genau** `aktiv`, und zwar in beiden Trägern – seit
|
|
26
|
+
0.28.0 als Aufzählung statt als Präfix, weil `aktivierung-ausstehend` vorher bestand (D-44). Der
|
|
27
|
+
dokumentierte Ablauf ist damit **nicht ohne Regelbruch begehbar**: Wer ihn befolgt, setzt `aktiv`,
|
|
28
|
+
bevor die Übernahmecheckliste fertig ist – und ein Agent arbeitet dann regelkonform in M3 auf
|
|
29
|
+
einem unfertigen Overlay.
|
|
30
|
+
|
|
31
|
+
### 1.2 Eigene Feststellung: Der Name der gesuchten Prüfung steht längst da
|
|
32
|
+
|
|
33
|
+
`docs/ADOPTION_GUIDE.md` Zeile 145 nennt den Lauf „prüft Struktur, Inhalte und
|
|
34
|
+
**Aktivierungsreife** des Overlays“. Der Docstring von `check_strict_overlay` nannte ihn ebenso
|
|
35
|
+
„Aktivierungsreife des Projekts“. **Beide beschreiben eine Kandidatenprüfung; die Umsetzung
|
|
36
|
+
verlangt den fertigen Zustand.** Es fehlt kein Begriff – es fehlt die Prüfung dazu. Das verschiebt
|
|
37
|
+
den Zuschnitt des Antrags: Nicht ein neues Konzept wird eingeführt, sondern eine Prüfung gebaut,
|
|
38
|
+
die zwei Dokumente seit je beschreiben.
|
|
39
|
+
|
|
40
|
+
### 1.3 Eigene Feststellung: Der Status-Hook trägt drei Defekte, nicht zwei
|
|
41
|
+
|
|
42
|
+
Das Review nennt zwei (nur die erste Angabe, kein Tabellenformat). Am Skript nachgelesen sind es
|
|
43
|
+
drei:
|
|
44
|
+
|
|
45
|
+
| Nr. | Defekt | Fundstelle | Folge |
|
|
46
|
+
|---|---|---|---|
|
|
47
|
+
| 1 | `value.startswith("aktiv")` – **Präfixvergleich** | `hook-overlay-status.py:54` (0.32.0) | `aktivierung-ausstehend` wird als `aktiv` gemeldet. **Genau der Defekt, den D-44 im Validator behoben hat** – die Lehre wurde in einer Funktion gezogen und nicht zur Nachbarin getragen, wie bei D-49 |
|
|
48
|
+
| 2 | Suchmuster verlangt einen Doppelpunkt | `:51` | Die Steckbriefzeile `\| Overlay-Status \| … \|` wird **nie** getroffen |
|
|
49
|
+
| 3 | `break` nach dem ersten Treffer | `:60` | Eine aktive Laufzeitregel gewinnt gegen ein inaktives Quell-Overlay |
|
|
50
|
+
|
|
51
|
+
Die gemeinsame Auswertung existiert seit 0.28.0 im Validator (`_overlay_status_angaben`) – der
|
|
52
|
+
Hook benutzt sie nicht.
|
|
53
|
+
|
|
54
|
+
## 2. Vorgeschlagene Änderung
|
|
55
|
+
|
|
56
|
+
1. **Neuer Schalter `--check-overlay-ready`** (Prüfung 9a): prüft denselben Inhalt wie
|
|
57
|
+
`--strict-overlay` – offene Werte, sicherheitsrelevante Abschnitte, Berechtigungsdatei ohne
|
|
58
|
+
Platzhalter – und beim Status **das Gegenteil**: Er muss an allen Stellen übereinstimmen und
|
|
59
|
+
noch **nicht** `aktiv` sein. Ein bereits aktives Overlay wird als Fehler gemeldet, mit Verweis
|
|
60
|
+
auf `--strict-overlay`.
|
|
61
|
+
2. **`--strict-overlay` bleibt unverändert** die Prüfung des aktiven Zustands. Nur sein Docstring
|
|
62
|
+
hört auf, sich Reifeprüfung zu nennen.
|
|
63
|
+
3. **Der Ablauf wird begehbar:** Leitfaden Schritt 7 und die Checkliste fahren die
|
|
64
|
+
Kandidatenprüfung; nach dem Setzen auf `aktiv` folgt ein Nachlauf mit `--strict-overlay`. Die
|
|
65
|
+
Overlay-Vorlage führt die Reihenfolge in fünf Schritten.
|
|
66
|
+
4. **Ein gemeinsames Modul `tests/scripts/overlay_status.py`** trägt die Auswertung. Validator und
|
|
67
|
+
Hook importieren es; **der Hook importiert nicht den Validator.**
|
|
68
|
+
5. **Der Hook wertet alle Träger aus**, vergleicht exakt statt als Präfix, kennt beide
|
|
69
|
+
Schreibweisen und meldet einen Widerspruch als **`widerspruechlich`** – nicht als `inaktiv` und
|
|
70
|
+
nicht als `unbekannt`. Die Folge ist dieselbe (nur lesend), der Grund nicht.
|
|
71
|
+
|
|
72
|
+
## 3. Was dieser Antrag nicht ändert
|
|
73
|
+
|
|
74
|
+
- **Er erteilt keine fachliche Freigabe.** Die Kandidatenprüfung prüft Vollständigkeit; die
|
|
75
|
+
Übernahmecheckliste bleibt der Nachweis, und ein Skript kann sie nicht abschließen.
|
|
76
|
+
- **Er prüft keine Richtigkeit.** Ein vollständig ausgefülltes Overlay mit falschen Werten besteht
|
|
77
|
+
die Prüfung.
|
|
78
|
+
- **Er ändert den Hook nicht zu einer Schranke.** Er informiert weiterhin und blockiert nie; ohne
|
|
79
|
+
zusätzliche Werkzeugkontrolle bleibt es dabei.
|
|
80
|
+
- **Er löst den Abgleich zwischen Quell-Overlay und Laufzeitfassung nicht** (`CR-2026-044` E4).
|
|
81
|
+
Geprüft wird jetzt der **Status** an allen Stellen, nicht der gesamte Inhalt.
|
|
82
|
+
|
|
83
|
+
## 4. Prüffragen
|
|
84
|
+
|
|
85
|
+
- [x] Richtige Ebene: Kern. Prüfwerkzeug, Hook, Übernahmeablauf.
|
|
86
|
+
- [x] Verschärfungsprinzip: **verschärft.** Der Hook hört auf, `aktivierung-ausstehend` als aktiv
|
|
87
|
+
zu melden, und eine Drift führt nicht mehr zur günstigeren der beiden Aussagen.
|
|
88
|
+
`--strict-overlay` behält seine Strenge unverändert – **das war der Grund, ihn nicht
|
|
89
|
+
umzudeuten.**
|
|
90
|
+
- [x] Widerspruchsfreiheit: D-23, D-44 (Aufzählung statt Präfix), D-49 (eine Lehre gilt auch für
|
|
91
|
+
die Nachbarfunktion), D-30 (Hook-Skripte ohne clientgebundene Ableitung – das neue Modul hat
|
|
92
|
+
keine), `framework/runtime/root-instruction.md` Abschnitt 3 gelesen.
|
|
93
|
+
- [x] Laufzeitfassungen: Die Hook-Konfiguration ändert sich **nicht** – derselbe Aufruf, dieselben
|
|
94
|
+
Argumente. Das Skript liegt im Kern und kommt mit `--update`.
|
|
95
|
+
- [x] Belegstatus: **im Code gegengeprüft**; die drei Hook-Defekte sind am Skript nachgelesen, die
|
|
96
|
+
Zirkularität an fünf Textstellen und an `check_strict_overlay`.
|
|
97
|
+
- [x] Test- und Validierungsbedarf: **sechs Sonden und zwei Gegenproben je Pack** – drei und
|
|
98
|
+
eine für die Kandidatenprüfung, drei und eine für den Hook. Die Sonde zum Fetch-Verbot
|
|
99
|
+
gehört zu `CR-2026-055`.
|
|
100
|
+
- [x] Overlays: Ein bestehendes, aktives Overlay ist **nicht** betroffen; `--strict-overlay` sagt
|
|
101
|
+
dort weiterhin dasselbe. Betroffen ist jede **künftige** Übernahme.
|
|
102
|
+
- [ ] Dokumentation: `CHANGELOG.md`, Decision Log (D-57, D-58), Roadmap, Leitfaden, Checkliste.
|
|
103
|
+
|
|
104
|
+
## 5. Vorlage zur Entscheidung
|
|
105
|
+
|
|
106
|
+
| Nr. | Frage | Auflösung | Preis |
|
|
107
|
+
|---|---|---|---|
|
|
108
|
+
| E1 | Wie wird die Zirkularität aufgelöst? | **Neuer Schalter für den Kandidaten, `--strict-overlay` bleibt.** Er hat mit dem Aktualisierungsablauf einen zweiten, funktionierenden Aufrufer; ihn umzudeuten hieße, jeder bestehenden Projekt-CI stillschweigend eine andere Prüfung zu geben – der Befundtyp dieses Projekts | Eine neue CLI-Oberfläche und ein zweiter Prüfpfad, der mitgepflegt werden muss. Der Docstring muss aufhören, `--strict-overlay` Reifeprüfung zu nennen |
|
|
109
|
+
| E2 | Was erwartet die Kandidatenprüfung beim Status? | **Übereinstimmung an allen Stellen und „noch nicht `aktiv`".** Ein bereits aktives Overlay ist ein Fehler mit Verweis auf `--strict-overlay` | Man kann die Prüfung nicht auf ein aktives Overlay anwenden, um dessen Vollständigkeit zu sehen. Das ist gewollt: Eine Prüfung, die zwei Zustände gleich behandelt, unterscheidet keine zwei Zustände – und wäre als schwächerer Ersatz für `--strict-overlay` benutzbar |
|
|
110
|
+
| E3 | Wie weit wird der Hook nachgezogen? | **Ganz, über ein gemeinsames Modul.** Alle drei Defekte; der Präfixvergleich ist derselbe, den D-44 im Validator ausgeschlossen hat. Ein Modul statt eines Imports des Validators: Ein Hook, der bei jedem Sitzungsstart 2300 Zeilen lädt, wäre ein Leistungs- und ein Fehlerrisiko | Eine neue Datei im Kern. **Die Alternative – nur den Präfixvergleich berichtigen – hätte zwei von drei Defekten stehen gelassen**, und die Drift ist der, den das Review beschreibt |
|
|
111
|
+
| E4 | Was meldet der Hook bei Widerspruch? | **`widerspruechlich`**, mit M1-Hinweis. `inaktiv` und `unbekannt` verschweigen beide, dass eine Erklärung da ist und nicht stimmt; wer die Meldung liest, suchte dann einen fehlenden Eintrag | Eine dritte Statusaussage im Hook-Text. Sie kostet nichts – der Hook gibt Fließtext aus, keinen Aufzählungswert |
|
|
112
|
+
| E5 | Wie wird nachgewiesen, dass die Prüfung nicht alles meldet? | **Über die Gegenprobe, und sie ist hier die wichtigere Hälfte:** ein vollständig ausgefüllter Kandidat mit Status `inaktiv` muss **durchlaufen**. Ohne sie stünde nur fest, dass irgendetwas gemeldet wird | Der Kandidat muss in der Sonde erst hergestellt werden – Platzhalter ersetzen, Status setzen, Berechtigungsdatei bereinigen. Das macht den Sondenlauf länger |
|
|
113
|
+
|
|
114
|
+
## 6. Entscheidung
|
|
115
|
+
|
|
116
|
+
| Feld | Inhalt |
|
|
117
|
+
|---|---|
|
|
118
|
+
| Entscheidung | **Angenommen, alle fünf Fragen wie vorgelegt.** E1 neuer Schalter `--check-overlay-ready`, `--strict-overlay` bleibt; E2 Übereinstimmung und „noch nicht aktiv"; E3 der Hook wird vollständig nachgezogen, über ein gemeinsames Modul; E4 ein Widerspruch wird als solcher gemeldet; E5 Nachweis über die Gegenprobe des vollständigen Kandidaten |
|
|
119
|
+
| Datum | 2026-09-13 |
|
|
120
|
+
| Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
|
|
121
|
+
| Decision-Log-Einträge | D-57 (Kandidatenprüfung und aktiver Zustand sind zwei Prüfungen), D-58 (eine Statusauswertung für beide Werkzeuge) |
|
|
122
|
+
| Auflagen | **Der Präfixvergleich im Hook ist mitzuberichtigen, obwohl das Review ihn nicht nennt.** Er ist wörtlich derselbe Defekt, den D-44 im Validator behoben hat; ihn stehenzulassen hieße, dieselbe Lehre zum zweiten Mal nicht zu übertragen. **Die Sonden laufen je Pack** – B02 war nicht, dass eine Prüfung falsch prüft, sondern dass sie einen Client nicht sieht. **Nachgewiesen:** sechs Sonden und zwei Gegenproben je Pack, zusammen zwölf und vier; die Gegenprobe des vollständigen Kandidaten belegt, dass die Prüfung nicht pauschal meldet. **Offen bleibt:** Der Abgleich des gesamten Inhalts zwischen Quell-Overlay und Laufzeitfassung (`CR-2026-044` E4) – geprüft wird der Status, nicht jedes Feld |
|
|
123
|
+
| Ziel-Release | `0.33.0` |
|
|
124
|
+
| Umsetzung | umgesetzt mit `0.33.0` |
|
package/.koolie/core/governance/change-requests/CR-2026-055-domain-ausnahme-ohne-mechanismus.md
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# Änderungsantrag `CR-2026-055`
|
|
2
|
+
|
|
3
|
+
| Feld | Inhalt |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Titel | Die Domain-Ausnahme stand an fünf Stellen im Kern, hatte keinen Mechanismus und keine Matrixzeile |
|
|
6
|
+
| Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
|
|
7
|
+
| Datum | 2026-09-13 |
|
|
8
|
+
| Betroffene Artefakte | `framework/core/03-security.md` (Abschnitt 4), `framework/core/02-privacy.md` (Regel 3.7), `framework/runtime/rules/10-privacy-security.md`, `checklists/02-privacy-context.md`, `templates/project-overlay/OVERLAY.md` (Abschnitt 11), beide `CLIENT_PACK.md` (neue Zeile **B10**, Zusammenfassung), `tests/scripts/validate-framework.py` (Fetch-Allow aus dem Manifest, Prüfung 31), `tests/scripts/probe-pruefungen.py` |
|
|
9
|
+
| Ebene laut Entscheidungsbaum 6 | **Core** (Sicherheitsregel, Ebene 3) und Client Packs |
|
|
10
|
+
| Art | Befund **B11** des unabhängigen Reviews vom 2026-09-12, P2; **gegengeprüft, bestätigt und um zwei eigene Befunde erweitert** |
|
|
11
|
+
| Dringlichkeit | **Paket 5**, gemeinsam mit `CR-2026-054` |
|
|
12
|
+
|
|
13
|
+
## 1. Anlass und Problem
|
|
14
|
+
|
|
15
|
+
### 1.1 Die Widerlegung steht fünf Zeilen unter der Zusage
|
|
16
|
+
|
|
17
|
+
`framework/core/03-security.md` Abschnitt 4, in einer Tabelle und ihrem Nachsatz:
|
|
18
|
+
|
|
19
|
+
| Zeile | Text |
|
|
20
|
+
|---|---|
|
|
21
|
+
| 54 | `\| Netzwerkzugriff \| Fetch(*) \| deny; **Ausnahmen je Domain im Overlay** \|` |
|
|
22
|
+
| 57 | „Regeln aus höheren Ebenen haben Vorrang, **`deny` gewinnt immer** `[DOK]`.“ |
|
|
23
|
+
| 59 | „Der Grund ist mechanisch: In der Berechtigungsdatei gewinnt `deny` immer, und keine der abgebildeten Clientformen kennt ein Ausnahmemuster innerhalb eines deny.“ |
|
|
24
|
+
|
|
25
|
+
**Zeile 59 buchstabiert das Argument aus, das Zeile 54 widerlegt** – für das Kernverzeichnis, zu
|
|
26
|
+
einem anderen Zweck. Eine zusätzliche `allow`-Regel für eine Domain hebt ein bestehendes
|
|
27
|
+
`Fetch(*)`-Verbot nicht auf. Der Befund ist damit nicht bloß bestätigt, sondern **im eigenen
|
|
28
|
+
Dokument vorweggenommen**.
|
|
29
|
+
|
|
30
|
+
### 1.2 Eigene Feststellung: Die Zusage steht an fünf Stellen und hat keine Zeile
|
|
31
|
+
|
|
32
|
+
| Stelle | Wortlaut |
|
|
33
|
+
|---|---|
|
|
34
|
+
| `framework/core/03-security.md:54` | „deny; Ausnahmen je Domain im Overlay“ |
|
|
35
|
+
| `framework/core/02-privacy.md` Regel 3.7 | „Freigaben erfolgen domainbezogen über das Overlay und die Berechtigungskonfiguration (`Fetch(domain:...)` **`[DOK]`**)“ |
|
|
36
|
+
| `framework/runtime/rules/10-privacy-security.md:31` | „ohne domainbezogene Freigabe im Overlay“ |
|
|
37
|
+
| `checklists/02-privacy-context.md:39` | MUSS-Punkt, dieselbe Formulierung |
|
|
38
|
+
| `templates/project-overlay/OVERLAY.md` Abschnitt 11 | „`Fetch(domain:...)`-Regeln in `<PERMISSIONS_FILE>`“ |
|
|
39
|
+
|
|
40
|
+
**Keine Fähigkeitsmatrix führt eine Zeile dazu.** B8 deckt das *Verbot* ab und steht für die
|
|
41
|
+
Abrufwerkzeuge auf `[TECHNISCH]`; die zugesagte *Ausnahme* kommt in keinem Pack vor. Das ist
|
|
42
|
+
dieselbe Bauform wie der Suchkanal aus 0.30.0: **eine Zusage, die keine Schicht kennt.** Und die
|
|
43
|
+
Angabe `[DOK]` in `02-privacy.md` belegte eine Schreibweise, nicht ihre Wirkung gegen ein
|
|
44
|
+
bestehendes `deny`.
|
|
45
|
+
|
|
46
|
+
### 1.3 Eigene Feststellung: Bei einem Pack ist die Zusage nicht ausdrückbar
|
|
47
|
+
|
|
48
|
+
`clients/claude-code/manifest.json` führt `WebFetch` und `WebSearch` in
|
|
49
|
+
`permission_tools_bare`. Damit wird das Muster beim Rendern **verworfen**; die erzeugte Datei
|
|
50
|
+
trägt – am 2026-09-13 nachgeprüft an einer frischen Installation:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
"deny": [ …, "WebFetch", "WebSearch" ]
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Das ganze Werkzeug, nicht ein Ziel. Eine Domain-Angabe ist dort **überhaupt nicht ausdrückbar**.
|
|
57
|
+
Dazu führt `permission_tools.fetch` beide Werkzeuge zusammen – **für eine Websuche gibt es kein
|
|
58
|
+
Domain-Ziel**, eine Domain-Liste wäre dort auch künftig sinnlos.
|
|
59
|
+
|
|
60
|
+
Das Verwerfen ist im Manifest deklariert und für sich richtig. **Unbenannt blieb die Folge** – dass
|
|
61
|
+
damit eine Kernaussage bei diesem Pack nicht einlösbar ist. Wörtlich dasselbe Muster wie B01 bei
|
|
62
|
+
`permissions` in `drop_fields` (D-50), nur über einen anderen Mechanismus.
|
|
63
|
+
|
|
64
|
+
### 1.4 Eigene Feststellung: Der Validator entschied dieselbe Absicht je Pack verschieden
|
|
65
|
+
|
|
66
|
+
`check_config` führte eine feste Namensliste: `"Fetch(*"`, `"WebFetch"`, `"WebSearch"`. Nachgerechnet:
|
|
67
|
+
|
|
68
|
+
| Regel in `allow` | Ergebnis bis 0.32.0 |
|
|
69
|
+
|---|---|
|
|
70
|
+
| `Fetch(*)` | abgelehnt |
|
|
71
|
+
| `Fetch(domain:docs.example.invalid)` | **zulässig** |
|
|
72
|
+
| `WebFetch(domain:docs.example.invalid)` | abgelehnt |
|
|
73
|
+
|
|
74
|
+
**Dieselbe Absicht, zwei Packs, zwei Entscheidungen** – und niemand hat das entschieden. Es ist
|
|
75
|
+
derselbe Fehlertyp wie B02 und B10: eine Prüfung, die Clientnamen festschreibt, statt sie aus dem
|
|
76
|
+
Manifest zu nehmen.
|
|
77
|
+
|
|
78
|
+
### 1.5 Beim Einfügen der Matrixzeile aufgefallen: die Zusammenfassung überzeichnet
|
|
79
|
+
|
|
80
|
+
Die Zeile **B10** musste in die Fachmatrix – und damit in die Summen von Abschnitt 3. Dabei zeigte
|
|
81
|
+
sich: **Die Zusammenfassung war zwei Releases hinterher und zählte nach einer Regel, die D-47
|
|
82
|
+
widerspricht.**
|
|
83
|
+
|
|
84
|
+
| Angabe bis 0.32.0 (`claude-code`) | Nachgerechnet |
|
|
85
|
+
|---|---|
|
|
86
|
+
| `[TECHNISCH]` 25 von 29 | **20** von 30 |
|
|
87
|
+
| `[TEXTUELL]` 3 von 29 | **7** von 30 |
|
|
88
|
+
| `[NICHT ABBILDBAR]` 1 von 29 (S5) | **3** von 30 (S3, S5, B10) |
|
|
89
|
+
|
|
90
|
+
S3 steht seit 0.31.0 auf `[NICHT ABBILDBAR]` (`CR-2026-050`), ohne dass die Summen nachgezogen
|
|
91
|
+
wurden. Und die vier Zeilen mit einer Kanalgrenze – B3, B4, B5, B8 – zählten als `[TECHNISCH]`,
|
|
92
|
+
obwohl D-47 sie je Kanal ausweist und ihr Shell-Teil nur als Anweisung trägt. **Die Überschrift
|
|
93
|
+
desselben Abschnitts sagte „Alle sechs Kernzusagen sind technisch abgebildet"** – seit 0.30.0 zu
|
|
94
|
+
weit gefasst: Drei davon (B3, B4, B5) sind es nur für den direkten Zugriff.
|
|
95
|
+
|
|
96
|
+
**Es ist der dritte Drift dieser Summen.** Das Pack `devin-desktop` dokumentiert selbst einen
|
|
97
|
+
früheren: „Die Zeilenzahl ist mit 0.26.0 nachgezählt worden – sie stimmte vorher nicht.“ Eine Zahl,
|
|
98
|
+
die dreimal von Hand stimmen musste, gehört ausgerechnet.
|
|
99
|
+
|
|
100
|
+
## 2. Vorgeschlagene Änderung
|
|
101
|
+
|
|
102
|
+
1. **Die Zusage wird zurückgezogen.** Alle fünf Stellen sagen: Das generelle Verbot steht, eine
|
|
103
|
+
Ausnahme je Domain gibt es **nicht**. `03-security.md` bekommt einen normativen Absatz, der die
|
|
104
|
+
Mechanik nennt und den einzigen Weg beschreibt: **Ersatz statt Zusatz** – die Verbotsregel selbst
|
|
105
|
+
wird über einen Änderungsantrag (V10) durch eine nachgewiesen gleichwertige Beschränkung
|
|
106
|
+
ersetzt. Ein Overlay darf das nicht.
|
|
107
|
+
2. **Zeile B10 in beiden Packs**, nach D-41 mit benanntem Ersatz: bei `claude-code`
|
|
108
|
+
`[NICHT ABBILDBAR]`, Ersatz ist das vollständige Verbot – **strenger** als die Zusage, deshalb
|
|
109
|
+
kein Schutzverlust; bei `devin-desktop` `[TEXTUELL]` mit VERIFY-Marker, weil die Form das
|
|
110
|
+
Rendern überlebt und ihre Wirkung unerhoben ist.
|
|
111
|
+
3. **Das Fetch-Allow-Verbot des Validators kommt aus dem Manifest** (`permission_tools.fetch`)
|
|
112
|
+
statt aus einer Namensliste. Damit ist jede `allow`-Regel auf ein Abrufverb unzulässig, bei
|
|
113
|
+
jedem Pack gleich.
|
|
114
|
+
4. **Die Summen der Fachmatrix werden ausgerechnet** – **Prüfung 31**, mit einer benannten
|
|
115
|
+
Zählregel: eine Zeile zählt bei ihrer **schwächsten** Einstufung. Beide Zusammenfassungen und
|
|
116
|
+
die Überschrift von `claude-code` werden berichtigt.
|
|
117
|
+
|
|
118
|
+
## 3. Was dieser Antrag nicht ändert
|
|
119
|
+
|
|
120
|
+
- **Er baut kein Domain-Profil.** Das Zwei-Profil-Modell des Reviews ist die größere Arbeit und
|
|
121
|
+
gehört dorthin, wo die Netz- und Isolationsarbeit liegt (Paket 6) – samt URL-Normalisierung,
|
|
122
|
+
Hostvergleich ohne Teilzeichenfolgen, Weiterleitungsprüfung und einem Nachweis, der ohne echte
|
|
123
|
+
Netzwerkisolation nichts belegt.
|
|
124
|
+
- **Er trennt das Abrufverb nicht von der Websuche.** Solange keine Domain-Steuerung zugesagt
|
|
125
|
+
wird, richtet die Zusammenlegung keinen Schaden an: Beide Werkzeuge sind verweigert, und das ist
|
|
126
|
+
die Absicht. Die Matrixzeile hält fest, dass eine Websuche **keinen** Domain-Begriff kennt.
|
|
127
|
+
- **Er prüft keine Einstufung.** Prüfung 31 prüft die Arithmetik. Eine Matrix, in der jede Zeile
|
|
128
|
+
falsch eingestuft ist, besteht sie.
|
|
129
|
+
- **Er beseitigt die Shell-Lücke im Netzverbot nicht.** B8 weist sie je Kanal aus; jedes andere
|
|
130
|
+
netzfähige Programm als `curl`, `wget`, `ssh`, `scp` ist nicht erfasst (D-47).
|
|
131
|
+
|
|
132
|
+
## 4. Prüffragen
|
|
133
|
+
|
|
134
|
+
- [x] Richtige Ebene: Sicherheitsregel im Core, Abbildung im Pack.
|
|
135
|
+
- [x] Verschärfungsprinzip: **verschärft dreifach.** Eine Ausnahme, die nie wirkte, verschwindet;
|
|
136
|
+
das Fetch-Allow-Verbot wird symmetrisch und damit strenger für ein Pack; die Summen hören auf,
|
|
137
|
+
die Durchsetzungstiefe zu überzeichnen. **Gelockert wird nichts** – es gab nichts zu lockern.
|
|
138
|
+
- [x] Widerspruchsfreiheit: gelesen wurden D-30, D-41 (Ausfall mit benanntem Ersatz), D-47 (Zusagen
|
|
139
|
+
je Zugriffskanal), D-50 (ein verworfenes Feld nennt seine Folge), D-59-Kandidat,
|
|
140
|
+
`governance/PRIORITY_HIERARCHY.md` Regel 2.1, `framework/runtime/permissions.json`.
|
|
141
|
+
- [x] Laufzeitfassungen: Die erzeugten Regeln ändern sich **nicht** – `deny` auf die
|
|
142
|
+
Abrufwerkzeuge stand und steht. Geändert wird, was darüber behauptet wird.
|
|
143
|
+
- [x] Belegstatus: **im Code und an einer frischen Installation nachgeprüft** – die erzeugte
|
|
144
|
+
Regelmenge beider Packs, die Namensliste des Validators durchgerechnet, die Summen der
|
|
145
|
+
Matrizen ausgezählt.
|
|
146
|
+
- [x] Test- und Validierungsbedarf: **eine Sonde und eine Gegenprobe je Pack** für das
|
|
147
|
+
Fetch-Allow-Verbot; **vier Sonden und eine Gegenprobe** für Prüfung 31.
|
|
148
|
+
- [x] Overlays: Ein Overlay, das freigegebene Domains führt, verliert seine Grundlage. Sie hat nie
|
|
149
|
+
gewirkt – der Migrationshinweis sagt das.
|
|
150
|
+
- [ ] Dokumentation: `CHANGELOG.md`, Decision Log (D-59, D-60), Roadmap, beide Packs.
|
|
151
|
+
|
|
152
|
+
## 5. Vorlage zur Entscheidung
|
|
153
|
+
|
|
154
|
+
| Nr. | Frage | Auflösung | Preis |
|
|
155
|
+
|---|---|---|---|
|
|
156
|
+
| E1 | Wird eine Domain-Ausnahme zugesagt? | **Nein – die Zusage wird zurückgezogen.** Sie hat nie gewirkt, bei einem Pack ist sie nicht ausdrückbar, und keine Matrixzeile hat sie je getragen. Der einzige dokumentierte Weg ist der **Ersatz** der Verbotsregel per Änderungsantrag, nicht ihre Ergänzung | Ein Projekt, das öffentliche Dokumentation braucht, bekommt in 0.33.0 keinen Weg; freigegebene Auszüge werden lokal bereitgestellt. **Das ist der ehrliche Stand, nicht eine neue Einschränkung** – funktioniert hat es nie |
|
|
157
|
+
| E2 | Was tritt an die Stelle der Zusage? | **Das vollständige Verbot**, und es ist **strenger** als die zurückgezogene Zusage. Deshalb ist der Ausfall kein Schutzverlust und die Inbetriebnahme nicht betroffen (D-41). Die Matrixzeile B10 sagt es je Pack | Der Ersatzsatz muss sagen, dass er strenger ist – ein Ersatzsatz, der seine Richtung verschweigt, wäre derselbe Befundtyp eine Ebene höher (Auflage aus `CR-2026-050`) |
|
|
158
|
+
| E3 | Wann kommt das Domain-Profil? | **Mit Paket 6**, wo die Isolationsschicht und die Pfaddurchsetzung liegen. Vorher ist es nicht messbar, und ein Profil, das man nicht messen kann, ist genau die Zusage, die dieses Projekt sich abgewöhnt | Eine bewusste Schuld. Der Eintrag steht in der Roadmap, mit den drei Vorarbeiten: Trennung von Abruf und Websuche, Hostvergleich, Weiterleitungen |
|
|
159
|
+
| E4 | Wird das Abrufverb jetzt von der Websuche getrennt? | **Nein.** Ohne zugesagte Domain-Steuerung ändert die Trennung an den erzeugten Regeln **nichts** – beide Werkzeuge bleiben verweigert. Ein neues Verb erzwänge Anpassungen in beiden Packs, im Validator und in jedem künftigen Pack, für einen Nutzen, der erst mit Paket 6 entsteht | Die Zusammenlegung bleibt stehen, und wer das Profil später baut, muss sie zuerst auflösen. Die Matrixzeile benennt es |
|
|
160
|
+
| E5 | Bleibt das Fetch-Allow-Verbot eine Namensliste? | **Nein, es kommt aus dem Manifest.** Die Asymmetrie – `Fetch(domain:…)` zulässig, `WebFetch(domain:…)` abgelehnt – war keine Entscheidung, sondern eine Nebenwirkung fest verdrahteter Namen. Derselbe Fehlertyp wie B02 und B10 | Ein Pack, das `permission_tools.fetch` leer lässt, entgeht der Prüfung. Das ist bei `hook_tools_absent` entschieden (D-47, Prüfung 26): Eine erklärte Abwesenheit muss folgerichtig sein – die Prüfung dort gilt weiter |
|
|
161
|
+
| E6 | Werden die Summen der Fachmatrix ausgerechnet? | **Ja, Prüfung 31, mit benannter Zählregel: schwächste Einstufung.** Das ist die einzige Regel, die D-47 nicht widerspricht – eine Zeile, deren Zusage in einem Kanal nur als Anweisung trägt, ist nicht technisch durchgesetzt. Die Summen sind **dreimal** gedriftet | Die ausgewiesene Durchsetzungstiefe **sinkt** – bei `claude-code` von 25 auf 20 technische Zeilen, und die Überschrift verliert den Satz, alle sechs Kernzusagen seien technisch abgebildet. **Das ist keine Verschlechterung, sondern das Ende einer Überzeichnung**; die Zeilen selbst sagten es seit 0.30.0 |
|
|
162
|
+
|
|
163
|
+
## 6. Entscheidung
|
|
164
|
+
|
|
165
|
+
| Feld | Inhalt |
|
|
166
|
+
|---|---|
|
|
167
|
+
| Entscheidung | **Angenommen, alle sechs Fragen wie vorgelegt.** E1 die Zusage wird zurückgezogen; E2 Ersatz ist das vollständige Verbot, ausdrücklich als das strengere benannt; E3 das Domain-Profil kommt mit Paket 6; E4 keine Verbtrennung jetzt; E5 das Fetch-Allow-Verbot kommt aus dem Manifest; E6 Prüfung 31 rechnet die Summen nach, Zählregel schwächste Einstufung |
|
|
168
|
+
| Datum | 2026-09-13 |
|
|
169
|
+
| Entscheidende Rolle | `<FRAMEWORK_OWNER>` |
|
|
170
|
+
| Decision-Log-Einträge | D-59 (keine Ausnahme je Domain; Ersatz statt Zusatz), D-60 (die Summen der Fachmatrix werden ausgerechnet) |
|
|
171
|
+
| Auflagen | **Der Rückzug gehört in den Migrationshinweis**, und zwar mit dem Satz, dass die Freigabe nie gewirkt hat – sonst liest es sich wie eine neue Einschränkung. **Die Summen sind mitzuberichtigen, obwohl der Befund sie nicht nennt:** Sie sind beim Einfügen der Zeile B10 aufgefallen, sie waren zwei Releases hinterher, und die Überschrift behauptete eine Durchsetzungstiefe, die D-47 seit 0.30.0 widerlegt. **Nachgewiesen:** eine Sonde und eine Gegenprobe je Pack für das Fetch-Allow-Verbot, vier Sonden und eine Gegenprobe für Prüfung 31; gegen 0.32.0 meldet Prüfung 31 fünf Fundstellen in den unveränderten Packs, und Prüfung 30 eine sechste, weil die Grenzfalltabelle des Vorstands D-59 nicht kennt. **Offen bleibt:** das Domain-Profil (Paket 6), die Trennung von Abrufverb und Websuche, und die Shell-Lücke des Netzverbots (D-47) |
|
|
172
|
+
| Ziel-Release | `0.33.0` |
|
|
173
|
+
| Umsetzung | umgesetzt mit `0.33.0` |
|