@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,107 @@
|
|
|
1
|
+
# Wirkungsnachweise zu Release 0.31.0
|
|
2
|
+
|
|
3
|
+
| Feld | Wert |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Gegenstand | Die Umsetzungen zu `CR-2026-050` (D-50, Befund B01) und `CR-2026-051` (D-51, Befund B12) |
|
|
6
|
+
| Datum | 2026-09-12 |
|
|
7
|
+
| Framework-Version | 0.31.0 (gegen 0.30.0 = `ca815c2`) |
|
|
8
|
+
| Prüfmethode | `probe-pruefungen.py` gegen **beide** Stände und in **beiden** Kodierungsumgebungen; dazu das Rendern des Skill-Frontmatters für beide Packs |
|
|
9
|
+
| Umgebung | Windows 11, Python 3.14.4 |
|
|
10
|
+
| Ergebnis | **60 Sonden und Gegenproben bestehen gegen 0.31.0 in beiden Umgebungen.** Die drei neuen Sonden fallen gegen 0.30.0 |
|
|
11
|
+
|
|
12
|
+
## 1. Was hier nachgewiesen wird – und was nicht
|
|
13
|
+
|
|
14
|
+
`CR-2026-051` (B12) ist **reine Textkorrektur** und stellt keine Prüfung auf. Dafür gibt es
|
|
15
|
+
bewusst keine Sonde: Eine Prüfung, die eine Formulierung bewacht, meldet jede Umformulierung
|
|
16
|
+
und sonst nichts. Der Beleg dieses Antrags sind die drei Gegenprüfungen aus seinem Abschnitt 1 –
|
|
17
|
+
`git ls-files` für das `root-template/`, beide Manifeste für `<HOOKS_FILE>` und `shared_seed`,
|
|
18
|
+
beide für `hook_fail_closed`.
|
|
19
|
+
|
|
20
|
+
Nachgewiesen wird, was Verhalten hat:
|
|
21
|
+
|
|
22
|
+
| Gegenstand | Art | Nachweis |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| Prüfung 27 – verworfenes Zusagenfeld ohne Ersatz | neue Prüfung | zwei Sonden, eine Gegenprobe |
|
|
25
|
+
| Installationsabbruch bei fehlendem Ersatz | Verhalten | eine Sonde, eine Gegenprobe |
|
|
26
|
+
| S3 in beiden Packs, Modi-Zeilen, Quellenkarte | Text | Protokolle vom selben Tag, keine Sonde |
|
|
27
|
+
|
|
28
|
+
## 2. Die drei neuen Sonden gegen beide Stände
|
|
29
|
+
|
|
30
|
+
Gefahren gegen einen frischen Auscheckstand von `ca815c2` mit nachinstallierter Laufzeitschicht.
|
|
31
|
+
|
|
32
|
+
| Sonde | Gegenstand | 0.30.0 | 0.31.0 |
|
|
33
|
+
|---|---|---|---|
|
|
34
|
+
| 27 | Verworfenes Zusagenfeld **ohne benannten Ersatz** wird gemeldet | **FEHL** | OK |
|
|
35
|
+
| 27 | **Leerer** Ersatzsatz gilt nicht als benannter Ersatz | **FEHL** | OK |
|
|
36
|
+
| B01 | **Installation bricht ab**, wenn das Zusagenfeld ersatzlos entfiele | **FEHL** | OK |
|
|
37
|
+
|
|
38
|
+
**Drei von drei fallen gegen den Vorstand.** Das ist der Nachweis nach D-23.
|
|
39
|
+
|
|
40
|
+
Die zweite Sonde ist die unscheinbare und die wichtigere: Ein Begleitsatz aus drei Leerzeichen
|
|
41
|
+
ist keiner. Dieselbe Strenge trägt Prüfung 26 seit 0.30.0 – ohne sie wäre die Deklaration ein
|
|
42
|
+
Feld, das man ausfüllt, indem man die Leertaste drückt.
|
|
43
|
+
|
|
44
|
+
## 3. Die Gegenproben – und was sie gegen 0.30.0 wert sind
|
|
45
|
+
|
|
46
|
+
| Gegenprobe | Gegenstand | 0.30.0 | 0.31.0 |
|
|
47
|
+
|---|---|---|---|
|
|
48
|
+
| 27 | Der ausgelieferte Ersatzsatz bleibt unbeanstandet | OK | OK |
|
|
49
|
+
| B01 | Installation mit benanntem Ersatz läuft durch | OK | OK |
|
|
50
|
+
|
|
51
|
+
> **Beide bestehen gegen 0.30.0 aus dem falschen Grund** – dort gibt es weder die Prüfung noch
|
|
52
|
+
> den Abbruch, also kann nichts anschlagen. Erst gegen 0.31.0 sagen sie etwas: **dass die neue
|
|
53
|
+
> Strenge den Normalfall nicht bricht.** Ohne sie stünde nur fest, dass irgendetwas abbricht –
|
|
54
|
+
> und ein Installer, der immer abbricht, bestünde jede Sonde.
|
|
55
|
+
>
|
|
56
|
+
> Das ist dieselbe Bauart wie bei den B04-Gegenproben aus 0.30.0. Sie gehört ins Protokoll
|
|
57
|
+
> geschrieben, nicht weggelassen.
|
|
58
|
+
|
|
59
|
+
## 4. Das Rendern beider Packs – der eigentliche Gegenstand von B01
|
|
60
|
+
|
|
61
|
+
Gemessen am Quelltext von `fw-repo-analyze`, dem Analyseskill, auf den sich M1 beruft.
|
|
62
|
+
|
|
63
|
+
| Pack | Frontmatter nach dem Rendern | Bewertung |
|
|
64
|
+
|---|---|---|
|
|
65
|
+
| `claude-code` | `name`, `description`, `argument-hint`, `allowed-tools: Read, Grep, Glob` | **`permissions` fehlt** – das Feld mit `deny: [edit, exec]` erreicht die Installation nicht |
|
|
66
|
+
| `devin-desktop` | dieselben Felder **plus `permissions` und `triggers`** unverändert | Die Felder erreichen die Installation; ob der Client sie auswertet, ist unerhoben |
|
|
67
|
+
|
|
68
|
+
**Das ist der Befund in zwei Zeilen.** Bei `claude-code` fiel die Beschränkung doppelt aus:
|
|
69
|
+
`allowed-tools` beschränkt nicht (gemessen am 2026-09-12), und das Feld, das beschränkt hätte,
|
|
70
|
+
war weg.
|
|
71
|
+
|
|
72
|
+
> **Eine Fehlmessung auf dem Weg dorthin, und sie gehört hierher.** Der erste Versuch las die
|
|
73
|
+
> Quelldatei mit `newline=""` und damit mit CRLF. `render_skill_frontmatter()` prüft
|
|
74
|
+
> `text.startswith("---\n")` und gibt die Eingabe unverändert zurück, wenn das nicht zutrifft –
|
|
75
|
+
> die Messung zeigte ein **unverändertes** Frontmatter und sah aus wie ein Beleg dafür, dass
|
|
76
|
+
> nichts verworfen wird. **Gemerkt hat es nur, dass beide Packs dasselbe Ergebnis lieferten**,
|
|
77
|
+
> obwohl ihre Manifeste sich an genau dieser Stelle unterscheiden. Vierte Bauart des stillen
|
|
78
|
+
> Fehlschlags nach ERH-12, ERH-05 und B01 Lauf A: **eine Funktion, die bei unerwarteter Eingabe
|
|
79
|
+
> die Eingabe zurückgibt, statt zu melden.**
|
|
80
|
+
|
|
81
|
+
## 5. Der Lauf in beiden Kodierungsumgebungen
|
|
82
|
+
|
|
83
|
+
Die Abnahmeauflage aus D-49:
|
|
84
|
+
|
|
85
|
+
| Stand | ohne `PYTHONIOENCODING` | mit `PYTHONIOENCODING=utf-8` |
|
|
86
|
+
|---|---|---|
|
|
87
|
+
| 0.31.0 | **alle 60 bestanden** | **alle 60 bestanden** |
|
|
88
|
+
|
|
89
|
+
## 6. Was dieses Release nicht nachweist
|
|
90
|
+
|
|
91
|
+
- **`disallowed-tools` ist nicht erhoben.** Die Herstellerdokumentation nennt es als
|
|
92
|
+
gesonderten Mechanismus für eine echte Werkzeugbeschränkung. Es wird deshalb **nicht**
|
|
93
|
+
zugesagt und trägt in S3 einen VERIFY-Marker. Ob damit eine Beschränkung je Skill möglich
|
|
94
|
+
wäre, ist offen – und es wäre der Weg, S3 zurückzugewinnen.
|
|
95
|
+
- **Die Wirkung der Skill-`permissions` bei `devin-desktop` ist unerhoben.** Belegt ist allein,
|
|
96
|
+
dass die Felder die installierte Fassung erreichen. Die Zeile steht deshalb auf `[TEXTUELL]`
|
|
97
|
+
und nicht auf `[TECHNISCH]`.
|
|
98
|
+
- **Prüfung 27 belegt nicht, dass der genannte Ersatz taugt.** Sie belegt, dass jemand die Frage
|
|
99
|
+
beantwortet hat – dieselbe Grenze wie bei Prüfung 25, und sie steht im Kopfkommentar.
|
|
100
|
+
- **Kein Lauf in einer echten Clientsitzung.** Gemessen ist das Rendern und der Installer.
|
|
101
|
+
|
|
102
|
+
## 7. Gegenzeichnung
|
|
103
|
+
|
|
104
|
+
| Rolle | Datum | Ergebnis |
|
|
105
|
+
|---|---|---|
|
|
106
|
+
| Ersteller des Nachweises (KI-gestützt, Sitzung) | 2026-09-12 | 60 von 60 bestanden gegen 0.31.0 in beiden Umgebungen; drei neue Sonden fallen gegen 0.30.0; eine eigene Fehlmessung dokumentiert |
|
|
107
|
+
| `<FRAMEWORK_OWNER>` | `<TBD>` | `<TBD>` |
|
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
# Gegenprüfung zu B06: der Hook kennt kein Ereignis – und lässt deshalb in beide Richtungen falsch durch
|
|
2
|
+
|
|
3
|
+
| Feld | Wert |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Gegenstand | **B06** – Eingabeschema und Pfadauswertung des Schutz-Hooks (`tests/scripts/hook-check-secrets.py`) |
|
|
6
|
+
| Anlass | Der letzte ungeprüfte Befund des unabhängigen Reviews vom 2026-09-12, P2. Nach D-23 und dem Arbeitsplan gehört jeder Befund vor der Umsetzung gegengeprüft |
|
|
7
|
+
| Datum | 2026-09-13 |
|
|
8
|
+
| Framework-Version | 0.33.0 (Auscheckstand `22d0fcb`, Arbeitsbaum sauber) |
|
|
9
|
+
| Prüfmethode | **Vier Messreihen, keine Codelektüre allein.** (1) 41 synthetische Eingaben gegen den Hook, jede mit mitgeführter Erwartung; (2) die **aufgezeichneten** Hook-Eingaben beider Packs aus AP2 – 15 für `claude-code`, 5 für `devin-desktop` – unverändert durch den Hook; (3) Pfadvarianten am **echten Dateisystem**, jede vorab mit `os.path.samefile` als dieselbe Datei belegt; (4) zwei Sitzungen eines realen Clients gegen eine frische Installation, mit Kontrolllauf ohne Hook |
|
|
10
|
+
| Umgebung | Windows 11, Python 3.14.4, NTFS; Client `claude-code` |
|
|
11
|
+
| Ergebnis | **Der Befund bestätigt sich in allen vier Teilen – und die Zählung war in jedem Teil zu klein.** Dazu **sieben eigene Feststellungen**. Die schwerste dreht die Richtung des Befunds um: Der Hook lässt nicht nur zu viel durch, er **blockiert bei `claude-code` jeden Schreibzugriff überhaupt**. Beide Symptome haben dieselbe Ursache |
|
|
12
|
+
|
|
13
|
+
## 0. Die Ursache in einem Satz
|
|
14
|
+
|
|
15
|
+
**Der Hook weiß nicht, was ein Ereignis ist.** Sein Kopfkommentar nennt das eine Entscheidung:
|
|
16
|
+
|
|
17
|
+
> „Das Skript ist bewusst schema-agnostisch: Es durchsucht alle Zeichenketten der über stdin
|
|
18
|
+
> gelieferten JSON-Struktur.“ (`hook-check-secrets.py:6`)
|
|
19
|
+
|
|
20
|
+
Daraus folgt beides zugleich. Weil er kein Ereignis prüft, nimmt er jede Struktur an, die JSON ist –
|
|
21
|
+
das ist der Befund des Reviews. Und weil er *alle* Zeichenketten durchsucht, prüft er auch Felder,
|
|
22
|
+
die gar nicht zur Operation gehören – das ist der Befund, den das Review nicht nennt und der
|
|
23
|
+
schwerer wiegt. **Eine Zusage, die mehr verspricht, als sie leistet, ist der wiederkehrende
|
|
24
|
+
Befundtyp dieses Projekts. Hier steht daneben eine, die etwas ganz anderes tut, als sie sagt.**
|
|
25
|
+
|
|
26
|
+
## 1. Vorbemerkung: die Fundstellen des Reviews zeigen ins Leere
|
|
27
|
+
|
|
28
|
+
Das Review nennt `hook-check-secrets.py:154`, `:204`, `:205`, `:217`, `:229`. Gegen 0.33.0
|
|
29
|
+
nachgesehen:
|
|
30
|
+
|
|
31
|
+
| Genannt | Was dort in 0.33.0 steht |
|
|
32
|
+
|---|---|
|
|
33
|
+
| `:154` | `for verb, ziel in (("write", schreiben), …` – die Verbschleife in `_werkzeugnamen()` |
|
|
34
|
+
| `:204` | `for v in obj:` – die Listenschleife in `iter_strings` |
|
|
35
|
+
| `:205` | `yield from iter_strings(v)` |
|
|
36
|
+
| `:217` | Fließtext im Docstring von `fail_closed()` |
|
|
37
|
+
| `:229` | Leerzeile |
|
|
38
|
+
|
|
39
|
+
**Keine der fünf Angaben trifft.** Der Hook ist seit dem Berichtsstand zweimal gewachsen (0.29.0
|
|
40
|
+
Tokenzerlegung, 0.30.0 Such- und Leseverben). Die gemeinten Stellen liegen in 0.33.0 bei `:233`
|
|
41
|
+
(Eingabe lesen), `:246` (Werkzeugname), `:247` (Zeichenketten sammeln), `:258` (Werkzeuggatter),
|
|
42
|
+
`:266` (`schreibend`), `:287` (Kernverzeichnis). **Das ist die vierte Gegenprüfung in Folge, in der
|
|
43
|
+
die Zeilenangaben des Berichts nicht stimmen** – der Befund selbst bleibt davon unberührt.
|
|
44
|
+
|
|
45
|
+
## 2. Was das Review nennt – und was gemessen dabei herauskommt
|
|
46
|
+
|
|
47
|
+
Messreihe 1, 41 Eingaben. Vollständige Tabelle in Abschnitt 7.
|
|
48
|
+
|
|
49
|
+
### 2.1 „Leere Eingabe und ein JSON-Array passieren trotz `--fail-closed`“ – bestätigt, es sind sechs Formen
|
|
50
|
+
|
|
51
|
+
`--fail-closed` fängt genau einen Fall ab: den **Syntaxfehler**. Alles, was gültiges JSON ist, aber
|
|
52
|
+
kein Objekt, läuft durch:
|
|
53
|
+
|
|
54
|
+
| Eingabe | `--fail-closed` | gemessen |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| `kein json {` | greift | Exit 2 |
|
|
57
|
+
| leere Eingabe | **greift nicht** | Exit 0 |
|
|
58
|
+
| nur Weißraum | **greift nicht** | Exit 0 |
|
|
59
|
+
| `[]` | **greift nicht** | Exit 0 |
|
|
60
|
+
| `null` | **greift nicht** | Exit 0 |
|
|
61
|
+
| `"leitwerk-core/VERSION"` | **greift nicht** | Exit 0 |
|
|
62
|
+
| `42` | **greift nicht** | Exit 0 |
|
|
63
|
+
|
|
64
|
+
Der Grund steht in einer Zeile:
|
|
65
|
+
|
|
66
|
+
```python
|
|
67
|
+
payload = json.loads(raw) if raw.strip() else {} # :233
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Eine leere Eingabe wird zu einem leeren Objekt **erklärt**, und ein `json.loads`, das nicht wirft,
|
|
71
|
+
gilt als gelesenes Ereignis. **Das Review nennt zwei Formen, es sind sechs.**
|
|
72
|
+
|
|
73
|
+
### 2.2 „Ein unbekannter, nicht leerer Werkzeugname umgeht die Pfadprüfung“ – bestätigt
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
if tool_name in WRITE_TOOLS + EXEC_TOOLS + READ_TOOLS + SEARCH_TOOLS or not tool_name: # :258
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Ein Name, der in keiner Liste steht und nicht leer ist, überspringt **beide** Pfadblöcke. Gemessen,
|
|
80
|
+
jeweils mit `--fail-closed`:
|
|
81
|
+
|
|
82
|
+
| Werkzeugname | Eingabe | Exit |
|
|
83
|
+
|---|---|---|
|
|
84
|
+
| `MultiEdit` | `file_path: leitwerk-core/VERSION` | **0** |
|
|
85
|
+
| `mcp__fs__write_file` | `path: leitwerk-core/VERSION` | **0** |
|
|
86
|
+
| `ReadFileTool` | `file_path: .env` | **0** |
|
|
87
|
+
| `Task` | `prompt: "Schreibe 9 nach leitwerk-core/VERSION"` | **0** |
|
|
88
|
+
| `42` (Zahl statt Zeichenkette) | `file_path: leitwerk-core/VERSION` | **0** |
|
|
89
|
+
|
|
90
|
+
Die letzte Zeile ist eine eigene Feststellung: `str(payload.get("tool_name", ""))` macht aus jedem
|
|
91
|
+
Wert eine Zeichenkette, und `42` ist dann ein unbekannter Werkzeugname. **Die Secret-Muster greifen
|
|
92
|
+
weiterhin** – sie laufen vor dem Werkzeuggatter; ein `password = …` im Inhalt blockiert auch bei
|
|
93
|
+
`VoelligUnbekannt` (gemessen). Betroffen ist ausschließlich die **Pfad**prüfung.
|
|
94
|
+
|
|
95
|
+
### 2.3 „Das Muster für das Kernverzeichnis ist groß-/kleinschreibungssensitiv“ – bestätigt, es sind sieben von neun
|
|
96
|
+
|
|
97
|
+
Das Review nennt ein Muster. Gezählt sind es sieben:
|
|
98
|
+
|
|
99
|
+
| Liste | Muster | `re.I` |
|
|
100
|
+
|---|---|---|
|
|
101
|
+
| `SECRET_PATH_PATTERNS` | `(^\|[\\/])\.env(\.\|$)` | **nein** |
|
|
102
|
+
| | `\.(pem\|key\|p12\|pfx\|jks\|keystore)$` | ja |
|
|
103
|
+
| | `(^\|[\\/])id_(rsa\|ed25519\|ecdsa)` | **nein** |
|
|
104
|
+
| | `(^\|[\\/])secrets?[\\/]` | ja |
|
|
105
|
+
| `STRUCTURE_PATH_PATTERNS` | `(^\|[\\/])(AGENTS\|CLAUDE)\.md$` | **nein** |
|
|
106
|
+
| | `(^\|[\\/])\.(devin\|claude)[\\/]` | **nein** |
|
|
107
|
+
| | `(^\|[\\/])project-overlay[\\/]` | **nein** |
|
|
108
|
+
| | `(^\|[\\/])framework[\\/]core[\\/]` | **nein** |
|
|
109
|
+
| `PROTECTED_WRITE_PATH_PATTERNS` | `(^\|[\\/])<CORE_DIR>[\\/]` | **nein** |
|
|
110
|
+
|
|
111
|
+
**Zwei tragen `re.I`, sieben nicht.** Das ist der eigentliche Beleg: Wäre die Sensitivität eine
|
|
112
|
+
Entscheidung für POSIX-Semantik, stünden die zwei nicht da. Sie ist keine Entscheidung, sondern
|
|
113
|
+
eine Ungleichbehandlung innerhalb derselben Datei.
|
|
114
|
+
|
|
115
|
+
Gemessen, alle mit `Write`:
|
|
116
|
+
|
|
117
|
+
| Eingabe | Exit |
|
|
118
|
+
|---|---|
|
|
119
|
+
| `leitwerk-core/VERSION` | 2 |
|
|
120
|
+
| `LEITWERK-CORE/VERSION` | **0** |
|
|
121
|
+
| `AGENTS.md` | 2 |
|
|
122
|
+
| `agents.md` | **0** |
|
|
123
|
+
| `.env` | 2 |
|
|
124
|
+
| `.ENV` | **0** |
|
|
125
|
+
| `.claude/settings.json` | 2 |
|
|
126
|
+
| `.Claude/settings.json` | **0** |
|
|
127
|
+
|
|
128
|
+
## 3. Eigene Feststellung 1: Der Rückfall für die unbekannte Operation ist die einzige Stelle ohne Kernschutz
|
|
129
|
+
|
|
130
|
+
Der Kommentar sagt das Gegenteil dessen, was der Code tut:
|
|
131
|
+
|
|
132
|
+
```python
|
|
133
|
+
# Ohne Werkzeugnamen ist die Art der Operation unbekannt; dann gilt die
|
|
134
|
+
# strengere Liste. Eine unbekannte Operation als lesend zu behandeln, waere
|
|
135
|
+
# die Annahme zugunsten des Zugriffs.
|
|
136
|
+
schreibend = tool_name in WRITE_TOOLS or not tool_name # :266
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
`schreibend` steuert die Wahl zwischen `SECRET_PATH_PATTERNS` und `PROTECTED_PATH_PATTERNS`. Die
|
|
140
|
+
**strengste** Liste – das Kernverzeichnis als Ganzes – hängt aber an einer anderen Bedingung:
|
|
141
|
+
|
|
142
|
+
```python
|
|
143
|
+
if tool_name in WRITE_TOOLS: # :287
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Ohne Werkzeugnamen ist diese Bedingung **falsch**. Gemessen:
|
|
147
|
+
|
|
148
|
+
| Eingabe | Exit |
|
|
149
|
+
|---|---|
|
|
150
|
+
| `{"tool_input": {"file_path": "leitwerk-core/VERSION"}}` (kein `tool_name`) | **0** |
|
|
151
|
+
| `{"tool_name": "", "tool_input": {"file_path": "leitwerk-core/VERSION"}}` | **0** |
|
|
152
|
+
| `["leitwerk-core/VERSION"]` | **0** |
|
|
153
|
+
| `{"tool_name": "Write", "tool_input": {"file_path": "leitwerk-core/VERSION"}}` | 2 |
|
|
154
|
+
|
|
155
|
+
**Die Stelle, die ausdrücklich für sich in Anspruch nimmt, die strengere zu sein, ist die einzige,
|
|
156
|
+
an der das Kernverzeichnis ungeschützt ist.** Das Review nennt diesen Fall nicht; es beschreibt den
|
|
157
|
+
unbekannten *nicht leeren* Namen. Der leere Name ist der schlechtere Fall, weil der Kommentar ihn
|
|
158
|
+
für erledigt erklärt.
|
|
159
|
+
|
|
160
|
+
## 4. Eigene Feststellung 2: Fünf bzw. sechs Pfadvarianten treffen dieselbe Datei und werden verschieden entschieden
|
|
161
|
+
|
|
162
|
+
Messreihe 3, am echten Dateisystem einer frischen Installation. **Jede Variante wurde vorab mit
|
|
163
|
+
`os.path.samefile` gegen die Standardschreibweise geprüft** – die Tabelle führt nur Varianten, bei
|
|
164
|
+
denen das Betriebssystem dieselbe Datei liefert.
|
|
165
|
+
|
|
166
|
+
Ziel `<CORE_DIR>/VERSION`, Werkzeug `Write`, Referenzentscheidung Exit 2:
|
|
167
|
+
|
|
168
|
+
| Variante | dieselbe Datei | Exit |
|
|
169
|
+
|---|---|---|
|
|
170
|
+
| relativ, Standardschreibweise | ja | 2 |
|
|
171
|
+
| absolut | ja | 2 |
|
|
172
|
+
| doppelter Trenner, gemischte Trenner, Punktsegmente | ja | 2 |
|
|
173
|
+
| aus `tests/` heraus über `..`, ohne den Kern zu nennen | ja | 2 |
|
|
174
|
+
| Gerätepfad `\\?\…` | ja | 2 |
|
|
175
|
+
| **Kernverzeichnis in Großbuchstaben** | ja | **0** |
|
|
176
|
+
| **absolut, Kern in Großbuchstaben** | ja | **0** |
|
|
177
|
+
| **8.3-Kurzname (`LEITWE~1`)** | ja | **0** |
|
|
178
|
+
| **Junction auf das Kernverzeichnis** | ja | **0** |
|
|
179
|
+
| **Gerätepfad mit Großschreibung** | ja | **0** |
|
|
180
|
+
|
|
181
|
+
Wurzel-Anweisungsdatei `CLAUDE.md`, Werkzeug `Write`, Referenzentscheidung Exit 2:
|
|
182
|
+
|
|
183
|
+
| Variante | dieselbe Datei | Exit |
|
|
184
|
+
|---|---|---|
|
|
185
|
+
| `CLAUDE.md`, absolut, über Punktsegment | ja | 2 |
|
|
186
|
+
| **`claude.md`, `Claude.Md`** | ja | **0** |
|
|
187
|
+
| **`CLAUDE.md.`** (Punkt am Ende) | ja | **0** |
|
|
188
|
+
| **`CLAUDE.md `** (Leerzeichen am Ende) | ja | **0** |
|
|
189
|
+
| **`CLAUDE.md::$DATA`** (Datenstrom-Zusatz) | ja | **0** |
|
|
190
|
+
|
|
191
|
+
**Das Review nennt Verknüpfungen und Groß-/Kleinschreibung. Kurzname, Punkt- und
|
|
192
|
+
Leerzeichen-Anhang und der Datenstrom-Zusatz kommen dort nicht vor** – drei Bauformen, die Windows
|
|
193
|
+
alle auf dieselbe Datei abbildet.
|
|
194
|
+
|
|
195
|
+
Die Gegenprobe hält: `leitwerk-core-alt/x.txt` und `AGENTS.md.bak` werden **nicht** blockiert. Der
|
|
196
|
+
Präfixfehler, den das Review vorsorglich nennt („ein Verzeichnis mit ähnlichem Namensanfang ist
|
|
197
|
+
kein Kind“), liegt hier **nicht** vor – die Muster verlangen einen Trenner.
|
|
198
|
+
|
|
199
|
+
### Nachgemessen: die Auflösung trägt
|
|
200
|
+
|
|
201
|
+
Vor dem Entwurf geprüft, ob `os.path.realpath` diese Varianten einfängt:
|
|
202
|
+
|
|
203
|
+
| Variante | aufgelöst |
|
|
204
|
+
|---|---|
|
|
205
|
+
| Großbuchstaben, 8.3-Kurzname, Junction, Punktsegmente | → Standardschreibweise |
|
|
206
|
+
| Punkt am Ende, Leerzeichen am Ende, `::$DATA` | → Standardschreibweise |
|
|
207
|
+
| nicht existierendes Ziel, auch über die Junction | → Standardschreibweise des Elternpfads |
|
|
208
|
+
| **Gerätepfad `\\?\…`** | **bleibt `\\?\…`** |
|
|
209
|
+
|
|
210
|
+
**Bis auf den Gerätepfad-Präfix trägt die Auflösung alles.** Das entscheidet den Zuschnitt der
|
|
211
|
+
Umsetzung: Es braucht keinen Neubau der Musterlogik, sondern die Anwendung der vorhandenen Muster
|
|
212
|
+
auf den **aufgelösten** Pfad – plus eine ausdrückliche Behandlung des Gerätepfad-Präfixes.
|
|
213
|
+
|
|
214
|
+
## 5. Eigene Feststellung 3: Der Hook blockiert bei `claude-code` jeden Schreibzugriff
|
|
215
|
+
|
|
216
|
+
**Das ist der schwerste Punkt dieser Gegenprüfung, und das Review nennt ihn nicht.** Es beschreibt
|
|
217
|
+
B06 durchgehend als „lässt durch“. Gemessen ist die Gegenrichtung.
|
|
218
|
+
|
|
219
|
+
### 5.1 Der Beleg stammt aus einer Aufzeichnung, nicht aus einer Annahme
|
|
220
|
+
|
|
221
|
+
`devpacks/leitwerk-erhebungen-2026-09-12/ap2-hook-aufzeichnung-*.jsonl` hält 15 reale
|
|
222
|
+
`claude-code`-Hook-Eingaben. Ihre Felder:
|
|
223
|
+
|
|
224
|
+
```
|
|
225
|
+
cwd, effort, hook_event_name, permission_mode, prompt_id,
|
|
226
|
+
session_id, tool_input, tool_name, tool_use_id, transcript_path
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
Genau eine davon ist ein Schreibzugriff – auf eine harmlose Datei in einem Wegwerfverzeichnis:
|
|
230
|
+
|
|
231
|
+
```json
|
|
232
|
+
"transcript_path": "C:\\Users\\reneh\\.claude\\projects\\…\\72a9d9af….jsonl",
|
|
233
|
+
"tool_name": "Write",
|
|
234
|
+
"tool_input": { "file_path": "…\\scratchpad\\b01\\B01-SCHREIBPROBE.txt", "content": "GESCHRIEBEN-5502" }
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Unverändert durch den Hook (Messreihe 2): **Exit 2.**
|
|
238
|
+
|
|
239
|
+
`transcript_path` enthält `\.claude\`. Das Muster `(^|[\\/])\.(devin|claude)[\\/]` trifft, `Write`
|
|
240
|
+
ist ein schreibendes Werkzeug, also gelten die Strukturpfade – **und der Pfad, der sie auslöst, ist
|
|
241
|
+
nicht das Ziel der Operation, sondern ein Nebenfeld des Clients.**
|
|
242
|
+
|
|
243
|
+
### 5.2 Die Ursache ist einvariabel isoliert
|
|
244
|
+
|
|
245
|
+
Ausgangspunkt ist dieselbe aufgezeichnete Eingabe; verändert wird je Zeile genau ein Feld:
|
|
246
|
+
|
|
247
|
+
| Variante | Exit |
|
|
248
|
+
|---|---|
|
|
249
|
+
| unverändert, wie aufgezeichnet | **2** |
|
|
250
|
+
| ohne `transcript_path` | 0 |
|
|
251
|
+
| `transcript_path` mit `\neutral\` statt `\.claude\` | 0 |
|
|
252
|
+
| ohne `cwd` | **2** |
|
|
253
|
+
| nur `tool_name` + `tool_input` | 0 |
|
|
254
|
+
| dieselbe Eingabe als `Read` | 0 |
|
|
255
|
+
| dieselbe Eingabe als `Bash` | 0 |
|
|
256
|
+
|
|
257
|
+
**`transcript_path`, und nur dieses Feld.** Betroffen sind ausschließlich die drei schreibenden
|
|
258
|
+
Werkzeuge – `Read`, `Grep`, `Glob` und `Bash` werden nach D-30 nur an den Secret-Pfaden gemessen
|
|
259
|
+
und bleiben unberührt. Das erklärt, warum die übrigen 14 Aufzeichnungen sich richtig verhalten:
|
|
260
|
+
**Es war die einzige Schreiboperation im ganzen Bestand.**
|
|
261
|
+
|
|
262
|
+
### 5.3 Am Client nachgemessen – eine Messung am Hook ist keine Messung am Client
|
|
263
|
+
|
|
264
|
+
Drei Läufe gegen frisch erzeugte Verzeichnisse, Aufgabe jeweils identisch: „Lege
|
|
265
|
+
`B06-SCHREIBPROBE.txt` mit dem Inhalt `GESCHRIEBEN-4711` an, nutze das Write-Werkzeug.“
|
|
266
|
+
|
|
267
|
+
| Lauf | Umgebung | Ergebnis | Datei angelegt |
|
|
268
|
+
|---|---|---|---|
|
|
269
|
+
| 1 | vollständige Installation **mit Regeltexten** | Der Agent verweigert unter Verweis auf das inaktive Overlay und M1 | nein |
|
|
270
|
+
| 2 | **nur die Hook-Konfiguration, keine Regeltexte** | „Der Schreibvorgang wurde von einem Guard-Hook blockiert“, Wortlaut der Framework-Meldung | **nein** |
|
|
271
|
+
| 3 | **Kontrolle: nichts installiert** | Datei angelegt, Inhalt `GESCHRIEBEN-4711` | ja |
|
|
272
|
+
|
|
273
|
+
Lauf 1 ist der Grund, warum es Lauf 2 braucht: **Mit Regeltexten misst man Modellverhalten statt
|
|
274
|
+
Engine.** Lauf 3 ist der Kontrolllauf ohne die geprüfte Schranke und macht Lauf 2 erst zu einer
|
|
275
|
+
Messung. Die Kette ist damit geschlossen: **Der Hook ist die Ursache, nicht das Modell, nicht der
|
|
276
|
+
Client, nicht die Berechtigungsdatei.**
|
|
277
|
+
|
|
278
|
+
### 5.4 Die Konfiguration erfasst genau diese Werkzeuge
|
|
279
|
+
|
|
280
|
+
An einer frischen Installation nachgesehen (`.claude/settings.json`):
|
|
281
|
+
|
|
282
|
+
```json
|
|
283
|
+
"matcher": "Read|Grep|Glob|Bash|Edit|Write|NotebookEdit",
|
|
284
|
+
"command": "python \"$CLAUDE_PROJECT_DIR/…/hook-check-secrets.py\" --fail-closed"
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
`Edit`, `Write` und `NotebookEdit` stehen im Matcher, `--fail-closed` steht im Kommando. **Für ein
|
|
288
|
+
Projekt, das dieses Pack installiert, ist damit jedes direkte Schreiben gesperrt** – unabhängig vom
|
|
289
|
+
Ziel.
|
|
290
|
+
|
|
291
|
+
### 5.5 Warum es unbemerkt blieb
|
|
292
|
+
|
|
293
|
+
Nicht durch Nachlässigkeit, sondern weil jede vorhandene Prüfung an dieser Stelle vorbeisieht:
|
|
294
|
+
|
|
295
|
+
- **Prüfung 16** ruft den Hook mit `{"tool_name": …, "tool_input": …}` auf – **ohne Umschlag**.
|
|
296
|
+
Sie kann den Fehler nicht sehen, weil sie das Feld nie mitschickt.
|
|
297
|
+
- **Die AP2-Aufzeichnung** enthält genau einen Schreibzugriff, und der Aufzeichnungs-Hook ist ein
|
|
298
|
+
*anderer* Hook: Er schreibt mit und entscheidet nichts. Die Aufzeichnung belegt das Schema, sie
|
|
299
|
+
hat den Schutz-Hook nie ausgeführt.
|
|
300
|
+
- **Der Pilot** steht auf 0.29.0 mit `claude-code`, und auf seinem Branch ist **nichts committet**.
|
|
301
|
+
Der Fall ist dort nie eingetreten, weil noch niemand schreiben wollte.
|
|
302
|
+
|
|
303
|
+
**Das ist der Befundtyp „eine Messung am Hook ist keine Messung am Client“, ein Feld weiter:** Eine
|
|
304
|
+
Messung mit selbst gebauter Eingabe ist keine Messung mit der Eingabe des Clients.
|
|
305
|
+
|
|
306
|
+
## 6. Eigene Feststellung 4: `cwd` ist der zweite Kanal derselben Ursache
|
|
307
|
+
|
|
308
|
+
Nicht nur `transcript_path`. Jedes Umschlagfeld, das einen Pfad trägt, wirkt gleich:
|
|
309
|
+
|
|
310
|
+
| Eingabe | Exit |
|
|
311
|
+
|---|---|
|
|
312
|
+
| nur Pflichtfelder, Ziel `/tmp/x.txt` | 0 |
|
|
313
|
+
| dieselbe Eingabe **+ `cwd` = `…\leitwerk-core\tests`** | **2** |
|
|
314
|
+
| dieselbe Eingabe + `cwd` = `…\leitwerk-core` (ohne Trenner danach) | 0 |
|
|
315
|
+
|
|
316
|
+
**Eine Sitzung, die im Kernverzeichnis startet, kann nirgendwohin mehr schreiben** – auch nicht
|
|
317
|
+
außerhalb. Dass die Kernwurzel selbst durchläuft, ist reiner Zufall der Mustergrenze: Das Muster
|
|
318
|
+
verlangt einen Trenner **nach** dem Namen, und `cwd` endet ohne einen.
|
|
319
|
+
|
|
320
|
+
Das ist zugleich die Antwort auf die Frage, ob eine Ausnahmeliste für `transcript_path` genügte:
|
|
321
|
+
**Nein.** Es ist kein Feld, es ist eine Gattung. Ein Pack, das morgen `workspace_root` mitschickt,
|
|
322
|
+
bringt den Fehler zurück.
|
|
323
|
+
|
|
324
|
+
## 7. Messreihe 1 vollständig
|
|
325
|
+
|
|
326
|
+
41 Eingaben, jede mit mitgeführter Erwartung. **19 Abweichungen.** Positivkontrollen (normales
|
|
327
|
+
Schreiben, normales Lesen, `git diff` auf einen Kernpfad) und Negativkontrollen (Kernpfad
|
|
328
|
+
schreiben, `.env` lesen, `AGENTS.md` schreiben) verhalten sich sämtlich richtig – der Hook wirkt,
|
|
329
|
+
und die Abweichungen sind Abweichungen, kein toter Hook.
|
|
330
|
+
|
|
331
|
+
| Gruppe | Fälle | Abweichungen |
|
|
332
|
+
|---|---|---|
|
|
333
|
+
| Positiv- und Negativkontrollen | 6 | 0 |
|
|
334
|
+
| Eingabeschema (Abschnitt 2.1, 3) | 12 | **11** |
|
|
335
|
+
| Unbekannte Werkzeugnamen (Abschnitt 2.2) | 5 | **5** |
|
|
336
|
+
| Groß-/Kleinschreibung (Abschnitt 2.3) | 4 | **4** |
|
|
337
|
+
| Pfadformen, die richtig entschieden werden | 8 | 0 |
|
|
338
|
+
| Umschlagfelder (Abschnitt 5, 6) | 6 | **1** |
|
|
339
|
+
|
|
340
|
+
Die Skripte der vier Messreihen liegen **nicht** im Repositorium – sie sind Wegwerfwerkzeug und
|
|
341
|
+
jederzeit aus diesem Protokoll neu baubar. Was bleibt, sind die Sonden in
|
|
342
|
+
`tests/scripts/probe-pruefungen.py` und die Prüfung, die sie belegen.
|
|
343
|
+
|
|
344
|
+
## 8. Was diese Gegenprüfung nicht belegt
|
|
345
|
+
|
|
346
|
+
- **Sie belegt nichts für `devin-desktop` in der Gegenrichtung.** Dessen aufgezeichnete Eingaben
|
|
347
|
+
führen `hook_event_name`, `prompt_id`, `session_id`, `tool_input`, `tool_name`, `tool_use_id` –
|
|
348
|
+
**kein `transcript_path`, kein `cwd`**. Die fünf Aufzeichnungen laufen sämtlich richtig durch.
|
|
349
|
+
Dass dieses Pack den Fehler nicht zeigt, ist eine Eigenschaft seines Schemas, **keine
|
|
350
|
+
Eigenschaft des Hooks**; sendet es morgen ein Pfadfeld im Umschlag, trifft ihn dasselbe.
|
|
351
|
+
- **Sie belegt keinen Schreibversuch über die Shell.** Der Kernschutz für `exec` besteht
|
|
352
|
+
unverändert nicht (B04, D-47); daran ändert diese Prüfung nichts und der kommende Umbau ebenso
|
|
353
|
+
wenig. **K-32 bleibt damit offen** – der Selbstanwendungsweg über die Shell wird hier nicht
|
|
354
|
+
geschlossen.
|
|
355
|
+
- **Sie belegt die Wirkung der Junction nur unter NTFS.** Symbolische Verknüpfungen unter Linux und
|
|
356
|
+
macOS sind **nicht** gemessen; die Auflösung sollte dort gleich wirken, das ist Erwartung, nicht
|
|
357
|
+
Messung.
|
|
358
|
+
- **Sie belegt keine Zeitlücke.** Dass zwischen Prüfung und Zugriff eine Verknüpfung umgebogen
|
|
359
|
+
werden kann, ist Mechanik und wird benannt, nicht gemessen. Ein Hook kann das nicht ausschließen;
|
|
360
|
+
dafür braucht es die Isolationsschicht des Betriebssystems (Paket 6, `CR-2026-047` E5).
|
|
361
|
+
- **Sie belegt nicht, dass ein Client den Matcher einhält.** Dass ein unbekannter Werkzeugname den
|
|
362
|
+
Hook überhaupt erreicht, ist bei `claude-code` unwahrscheinlich, weil der Matcher aus
|
|
363
|
+
`hook_tools` erzeugt wird. Das ist aber eine **Clientzusage** – genau die Art unbelegter Annahme,
|
|
364
|
+
an der AP2-CC-13 acht Releases lang hing (D-31). Der Hook darf sich nicht darauf stützen.
|
|
365
|
+
|
|
366
|
+
## 9. Gegenzeichnung
|
|
367
|
+
|
|
368
|
+
| Rolle | Name/Kennung | Datum | Ergebnis bestätigt |
|
|
369
|
+
|---|---|---|---|
|
|
370
|
+
| `<FRAMEWORK_OWNER>` | `<TBD>` | `<TBD>` | `<TBD>` |
|