@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,143 @@
|
|
|
1
|
+
# Migrationslauf: der Pilot von 0.41.0 auf 0.46.0 – und was daneben lag
|
|
2
|
+
|
|
3
|
+
| Feld | Wert |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Gegenstand | **Kandidat 4 der Übergabe:** „Den Piloten heben und seinen Befund auflösen." Fünf Releases, 0.41.0 bis 0.46.0 |
|
|
6
|
+
| Anlass | Der Pilot (`devpacks/otp-generator`) stand fünf Releases zurück. **Der zweite echte Migrationslauf dieses Projekts** – der erste war 0.37.0 auf 0.41.0 am 2026-09-14 |
|
|
7
|
+
| Datum | 2026-09-15 |
|
|
8
|
+
| Prüfmethode | Der dokumentierte Weg aus `docs/ADOPTION_GUIDE.md` Abschnitt 3, mit einem Validatorlauf **vor**, **zwischen** und **nach** den Nacharbeiten. Die beiden Vorhersagen der Migrationshinweise werden **geprüft**, nicht geglaubt |
|
|
9
|
+
| Umgebung | Windows 11, Python 3.14.4; Pilot als Arbeitskopie, `core.autocrlf=true` |
|
|
10
|
+
| Ergebnis | **Beide Vorhersagen treffen.** Daneben ein Befund, den niemand gesucht hat und der nicht dem Piloten gehört: **versionierter Bytecode des Kerns, in zwei von zwei Projekten** |
|
|
11
|
+
|
|
12
|
+
## 0. Der Lauf in einem Satz
|
|
13
|
+
|
|
14
|
+
**Der Migrationshinweis von 0.44.0 hat den Piloten namentlich angekündigt – und er hat
|
|
15
|
+
recht; der Befund, der wirklich zählt, stand daneben und in keinem Hinweis.**
|
|
16
|
+
|
|
17
|
+
## 1. Der Ausgangsstand
|
|
18
|
+
|
|
19
|
+
| Messung | Wert |
|
|
20
|
+
|---|---|
|
|
21
|
+
| `leitwerk-core/VERSION` des Piloten | `0.41.0` |
|
|
22
|
+
| Validator des Piloten, `--strict-overlay` | **1 Fehler, 3 Warnungen** |
|
|
23
|
+
| `install.py --check` (aus dem Zielstand, gegen den Piloten) | **eine** abweichende Kerndatei: `.claude/skills/fw-tests/TESTS.md`; 57 unverändert, 20 Projektdateien |
|
|
24
|
+
| `hooks`-Block in `.claude/settings.json` | vorhanden, ein `PreToolUse`-Kommando |
|
|
25
|
+
|
|
26
|
+
Der eine Fehler und die drei Warnungen betreffen sämtlich Projektinhalte des Piloten (ein
|
|
27
|
+
Sperrbegriff aus der eigenen Vorgeschichte, zwei Quellen-URLs) sowie die bekannte
|
|
28
|
+
Pfadwarnung über die Laufzeitschicht des nicht installierten Packs. **Sie sind der
|
|
29
|
+
Ausgangswert, gegen den am Ende gemessen wird.**
|
|
30
|
+
|
|
31
|
+
## 2. Der Weg
|
|
32
|
+
|
|
33
|
+
Nach `docs/ADOPTION_GUIDE.md` Abschnitt 3, in dieser Reihenfolge:
|
|
34
|
+
|
|
35
|
+
1. `leitwerk-core/` des Piloten durch den Zielstand ersetzt.
|
|
36
|
+
2. `python leitwerk-core/install.py --update` – **eine** Kerndatei aktualisiert, 57
|
|
37
|
+
unverändert, 20 Projektdateien unberührt.
|
|
38
|
+
3. Validatorlauf **vor** den Nacharbeiten – die eigentliche Messung.
|
|
39
|
+
|
|
40
|
+
**Ein Nebenbefund am Werkzeug, der keiner ist.** `install.py --dry-run` **ohne**
|
|
41
|
+
`--update` bricht an einer bestehenden Installation mit einem Fehler ab: Er ist der
|
|
42
|
+
Trockenlauf einer *Erst*installation, und D-46 schützt dort vorhandene Projektdateien.
|
|
43
|
+
Die Meldung nennt den richtigen nächsten Schritt („Stammen sie aus einer früheren
|
|
44
|
+
Installation: `--update` verwenden"), also führt sie niemanden in die Irre. **Der
|
|
45
|
+
Trockenlauf einer Aktualisierung heißt `--update --dry-run`**, und er nannte dieselbe
|
|
46
|
+
eine Datei wie der echte Lauf.
|
|
47
|
+
|
|
48
|
+
## 3. Das Ergebnis der Messung
|
|
49
|
+
|
|
50
|
+
Validatorlauf am Piloten, Framework `0.46.0`, **vor** den Nacharbeiten:
|
|
51
|
+
|
|
52
|
+
| Meldung | Anzahl | Vorhergesagt von |
|
|
53
|
+
|---|---|---|
|
|
54
|
+
| `'Bash(mvn -B -q compile)' steht im ask-Korb, und kein Platzhalter des Overlays erklärt diesen Befehl` | **1** | Migrationshinweis 0.44.0 |
|
|
55
|
+
| `Kompatible Framework-Version '0.41.0' passt nicht zu leitwerk-core/VERSION (0.46.0)` | 1 | Adoption Guide, Abschnitt 3 |
|
|
56
|
+
| Projektinhalte des Piloten (Ausgangswert) | 1 Fehler, 3 Warnungen | – |
|
|
57
|
+
| **Gesamt** | **3 Fehler, 3 Warnungen** | |
|
|
58
|
+
|
|
59
|
+
### 3.1 Die erste Vorhersage: der Migrationshinweis von 0.44.0
|
|
60
|
+
|
|
61
|
+
Er lautet: *„Ein Projekt, dessen Berechtigungsdatei einen Befehl führt, den Abschnitt 5
|
|
62
|
+
oder 6 nicht für seinen Platzhalter erklärt, bekommt ab diesem Release einen Fehler. …
|
|
63
|
+
**Der Pilot ist genau dieser Fall** – eine Fundstelle, abgezählt."*
|
|
64
|
+
|
|
65
|
+
**Es ist genau eine.** Damit hat dieses Projekt zum zweiten Mal einen Hinweis über eine
|
|
66
|
+
fremde Installation eingelöst nachgerechnet – und zum zweiten Mal stimmt er.
|
|
67
|
+
|
|
68
|
+
### 3.2 Die zweite Vorhersage: Prüfung 43 schweigt
|
|
69
|
+
|
|
70
|
+
Die Übergabe sagte: *„beim Heben bekommt er zusätzlich Prüfung 43 zu sehen. Sein
|
|
71
|
+
`hooks`-Block ist vorhanden (geprüft), also sollte sie dort schweigen."* **Sie schweigt.**
|
|
72
|
+
Das ist eine Vorhersage über ein *Ausbleiben*, und sie ist schwächer als eine über eine
|
|
73
|
+
Meldung – belegt ist damit nur, dass Prüfung 43 hier nichts findet, nicht dass sie hier
|
|
74
|
+
etwas fände, wenn es etwas gäbe. Der Beleg dafür steht in den Sonden zu 43.
|
|
75
|
+
|
|
76
|
+
## 4. Die Auflösung – eine Entscheidung des Overlay Owners
|
|
77
|
+
|
|
78
|
+
Der Migrationshinweis sagt ausdrücklich: *„Die Auflösung ist eine Entscheidung des
|
|
79
|
+
Overlay Owners und keine des Frameworks: entweder die Zeile fällt, oder der Befehl wird
|
|
80
|
+
im Overlay als Wert des passenden Platzhalters erklärt."* Beide Wege wurden vorgelegt.
|
|
81
|
+
|
|
82
|
+
**Entschieden: Die Zeile fällt.** `Bash(mvn -B -q compile)` ist aus dem `ask`-Korb
|
|
83
|
+
genommen; der Befehl bleibt in Abschnitt 5 des Overlays gelistet und wirkt über die
|
|
84
|
+
Regelschicht.
|
|
85
|
+
|
|
86
|
+
| | Was dafür spricht | Was es kostet |
|
|
87
|
+
|---|---|---|
|
|
88
|
+
| **Die Zeile fällt** (gewählt) | Der Befehl füllt keinen der drei Befehlsplatzhalter; ein Eintrag von Hand ist nach D-76 **kein Ersatz** für einen vierten Schlitz, und die Overlay-Vorlage sagt das seit 0.43.0 wörtlich | Eine Anweisung statt einer technischen Schranke. **Gemessen kostet das nichts:** Das Client Pack hat am 2026-09-14 belegt, dass ein Befehl in keinem Korb in die Rückfrage läuft – dasselbe, was `ask` bewirkt |
|
|
89
|
+
| `<LINT_COMMAND>` füllen (verworfen) | Prüfung 42 wäre ebenso zufrieden, und der Schlitz ist frei | **Das Overlay behauptete dann, ein Kompilierlauf sei ein Lint-/Formatprüfbefehl.** Er ist keiner. Und Befund `Q-01` („es gibt keine erzwungene Formatprüfung") wäre verdeckt statt gelöst – **den Text an den Mechanismus biegen** ist der Befundtyp, den dieses Repositorium sonst bei anderen findet |
|
|
90
|
+
|
|
91
|
+
## 5. Was daneben lag – und es gehört nicht dem Piloten
|
|
92
|
+
|
|
93
|
+
Beim Ersetzen von `leitwerk-core/` standen zwei `.pyc`-Dateien als „modified" im
|
|
94
|
+
Arbeitsbaum. Nachgezählt:
|
|
95
|
+
|
|
96
|
+
| Projekt | Framework-Stand | Versionierte Bytecode-Dateien unter `leitwerk-core/` | `.gitignore` deckt `__pycache__` |
|
|
97
|
+
|---|---|---|---|
|
|
98
|
+
| `devpacks/otp-generator` (Pilot) | 0.41.0 | **6** | nein |
|
|
99
|
+
| `devpacks/test-devin-framework` (Übungsrepo) | 0.45.0 | **2** | nein |
|
|
100
|
+
| `devpacks/leitwerk` (Framework selbst) | 0.46.0 | 0 | **ja** |
|
|
101
|
+
|
|
102
|
+
**Zwei von zwei.** Und das Framework-Repositorium hat die Zeile seit jeher – deshalb ist
|
|
103
|
+
der Fehler dort nie aufgefallen.
|
|
104
|
+
|
|
105
|
+
`docs/ADOPTION_GUIDE.md` Abschnitt 2 sagte zur `.gitignore` genau einen Satz: *„Übernimm
|
|
106
|
+
die `.gitignore` des Framework-Repositorys **nicht** unverändert"*, und nennt dann die
|
|
107
|
+
**vier Zeilen, die ein Projekt weglassen muss**. Welche es **braucht**, stand nirgends.
|
|
108
|
+
|
|
109
|
+
> **Die Lehre, die über den Fall hinausgeht:** Ein Leitfaden, der sagt, was man
|
|
110
|
+
> *weglassen* soll, ist nicht die Umkehrung eines Leitfadens, der sagt, was man
|
|
111
|
+
> *braucht*. Beide Listen sind nötig, und nur eine stand da. Das ist die Bauform des
|
|
112
|
+
> Befunds von 0.45.0, ein zweites Mal.
|
|
113
|
+
|
|
114
|
+
Behandelt als eigener Antrag: `CR-2026-069`, D-97, Prüfung 45 – siehe
|
|
115
|
+
`2026-09-15-wirkungsnachweise-0.47.0.md`.
|
|
116
|
+
|
|
117
|
+
## 6. Die Nacharbeiten und der Abschlusswert
|
|
118
|
+
|
|
119
|
+
| Nacharbeit | Grund |
|
|
120
|
+
|---|---|
|
|
121
|
+
| `Bash(mvn -B -q compile)` aus dem `ask`-Korb | Prüfung 42, D-76, D-90; Entscheidung des Overlay Owners |
|
|
122
|
+
| Abschnitt 5 des Overlays: Freigabestufe auf „nur Regelschicht" | Der Text muss sagen, was gilt – sonst wäre die Zeile eine Zusage ohne Mechanismus |
|
|
123
|
+
| Steckbrief auf `0.46.0`, Overlay-Version auf `0.2.2` an allen drei Ablageorten, Zeile im Änderungsverlauf | Adoption Guide Abschnitt 3, Schritte 3 und 5 |
|
|
124
|
+
| Sechs `.pyc` aus der Versionierung, `__pycache__/` in die `.gitignore` | D-97 |
|
|
125
|
+
|
|
126
|
+
| Messung danach | Wert |
|
|
127
|
+
|---|---|
|
|
128
|
+
| Validator, `--strict-overlay` | **1 Fehler, 3 Warnungen** – zeichengleich mit dem Ausgangsstand |
|
|
129
|
+
| `install.py --check` | `Core ist auf dem Stand des Releases.` |
|
|
130
|
+
|
|
131
|
+
**Der Abschlusswert ist der Ausgangswert.** Was die Aktualisierung an Meldungen erzeugt
|
|
132
|
+
hat, ist vollständig abgearbeitet; was übrig bleibt, stand vorher da und gehört dem
|
|
133
|
+
Projekt. Gemergt als `umdiecke/otp-generator` PR #4.
|
|
134
|
+
|
|
135
|
+
## 7. Was dieser Lauf nicht belegt
|
|
136
|
+
|
|
137
|
+
- **Er misst keine Sitzung.** Dass der Pilot mit der geänderten Berechtigungsdatei
|
|
138
|
+
arbeitet wie erwartet, ist nicht gemessen – hier ist eine Datei nachgezählt.
|
|
139
|
+
- **Er sagt nichts darüber, ob `mvn -B -q compile` läuft.** Auf diesem Arbeitsplatz sind
|
|
140
|
+
weder JDK noch Maven installiert; das war am 2026-09-13 so und ist es geblieben.
|
|
141
|
+
- **Die Zahl „sechs" ist eine Zählung des Zustands, keine der Ursache.** Wann und durch
|
|
142
|
+
welchen Commit die Dateien in die Versionierung kamen, ist nicht erhoben – für den
|
|
143
|
+
Befund ist es ohne Belang: Die fehlende Regel erklärt sie alle.
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Wirkungsnachweise 0.45.0 – Prüfungen 43 und 44
|
|
2
|
+
|
|
3
|
+
| Feld | Wert |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Datum | 2026-09-15 |
|
|
6
|
+
| Gegenstand | Prüfung 43 (Hook-Block der Berechtigungsdatei, D-92) und Prüfung 44 (Register der Übungspräparationen, D-93) |
|
|
7
|
+
| Antrag | `CR-2026-067` |
|
|
8
|
+
| Grundlage | D-23: Eine Prüfung gilt erst als vorhanden, wenn sie eine bewusst gesetzte Sonde meldet |
|
|
9
|
+
| Ergebnis | **144 Sonden, 57 Gegenproben, 7 Selbstproben – alle bestanden, in beiden Kodierungsumgebungen zeilengleich** (Exit 0). Validator gegen `main`: 0 Fehler, 0 Warnungen |
|
|
10
|
+
|
|
11
|
+
## 1. Der Sondenlauf
|
|
12
|
+
|
|
13
|
+
Abnahmeform seit D-49: zwei Läufe, einmal ohne und einmal mit `PYTHONIOENCODING=utf-8`.
|
|
14
|
+
|
|
15
|
+
| Umgebung | Sonden | Gegenproben | Selbstproben | Exit |
|
|
16
|
+
|---|---|---|---|---|
|
|
17
|
+
| ohne `PYTHONIOENCODING` | 144 | 57 | 7 | 0 |
|
|
18
|
+
| mit `PYTHONIOENCODING=utf-8` | 144 | 57 | 7 | 0 |
|
|
19
|
+
|
|
20
|
+
Beide Ausgaben sind **zeilengleich** (`diff` über alle Meldezeilen: kein Unterschied). Vor
|
|
21
|
+
diesem Release waren es 135 Sonden und 53 Gegenproben; die Zunahme ist genau die neue:
|
|
22
|
+
**neun Sonden und vier Gegenproben.**
|
|
23
|
+
|
|
24
|
+
| Kennung | Was sie herstellt | Erwartete Meldung |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| Sonde 43a (je Pack) | `hooks`-Block aus der Berechtigungsdatei entfernt | „trägt keinen 'hooks'-Block" |
|
|
27
|
+
| Sonde 43b (je Pack) | derselbe Zustand **plus** verwaiste Hook-Datei daneben | dieselbe Meldung **und** der Dateiname darin |
|
|
28
|
+
| Sonde 43c (je Pack) | Block vorhanden, `PreToolUse` leer | „ohne ein einziges PreToolUse-Kommando" |
|
|
29
|
+
| Gegenprobe 43a (je Pack) | Auslieferungszustand | **keine** der beiden Meldungen |
|
|
30
|
+
| Sonde 44a | eine Vorbedingung nennt `UEB-99`, das Register führt es nicht | „das Register in …" |
|
|
31
|
+
| Sonde 44b | das Register führt `UEB-98`, kein Testfall nennt es | „die kein Testfall nennt" |
|
|
32
|
+
| Sonde 44c | die Registerüberschrift ist umbenannt | „führt kein Register mehr" |
|
|
33
|
+
| Gegenprobe 44a | Auslieferungszustand | keine Meldung der Prüfung 44 |
|
|
34
|
+
| Gegenprobe 44b | eine **achte** Präparation, registriert **und** von einem Testfall gebraucht | keine Meldung der Prüfung 44 |
|
|
35
|
+
|
|
36
|
+
**Gegenprobe 44b ist die wichtigere Hälfte.** Eine Prüfung, die jede neue Kennung meldet,
|
|
37
|
+
bestünde jede Sonde. Sie belegt, dass der **zulässige** Weg – eine Präparation ergänzen und
|
|
38
|
+
sie registrieren – nicht teurer ist als der unzulässige.
|
|
39
|
+
|
|
40
|
+
## 2. Was der erste Lauf gefunden hat, und es war die Sonde
|
|
41
|
+
|
|
42
|
+
Der erste Durchgang meldete **zwei Abweichungen, in beiden Umgebungen dieselben** – beide
|
|
43
|
+
in den neuen Sonden, keine in den Prüfungen:
|
|
44
|
+
|
|
45
|
+
| Abweichung | Ursache | Behebung |
|
|
46
|
+
|---|---|---|
|
|
47
|
+
| Sonde 43b fiel bei `claude-code` | Die Sonde legte eine Datei `hooks.json` an. Die kennt der Validator nicht: `VERWAISTE_HOOK_DATEIEN` führt **genau einen** Namen, `hooks.v1.json`, und den für beide Packs. **Geraten statt nachgesehen** | Beide Packs nutzen denselben Namen; die Herkunft steht als Kommentar an der Stelle |
|
|
48
|
+
| Gegenprobe 44a brach mit `TypeError` ab | Der generischen `gegenprobe()` wurde ein Tupel übergeben; sie nimmt genau einen Suchtext | Statt drei Meldungen aufzuzählen, sucht die Gegenprobe jetzt `"(D-93)"` – der Decision Record steht in **jeder** Meldung der Prüfung 44 und fängt damit auch künftige |
|
|
49
|
+
|
|
50
|
+
**Die zweite Behebung ist besser als der erste Entwurf**, und zwar aus einem Grund, der
|
|
51
|
+
über diesen Fall hinausgeht: Eine Gegenprobe, die eine Liste bekannter Meldungen
|
|
52
|
+
ausschließt, übersieht jede Meldung, die später dazukommt. Ein gemeinsamer Anker im Text
|
|
53
|
+
jeder Meldung schließt sie alle ein.
|
|
54
|
+
|
|
55
|
+
**Ein Nebenbefund, der nicht zu diesem Release gehört:** Prüfung 18 sucht bei **beiden**
|
|
56
|
+
Packs nach `hooks.v1.json` – einem Namen aus der `devin-desktop`-Welt. Ob `claude-code` je
|
|
57
|
+
eine eigene Hook-Datei angelegt hat und wie sie dort hieße, ist nicht erhoben. Die Prüfung
|
|
58
|
+
ist damit für dieses Pack möglicherweise wirkungslos, ohne dass es auffällt. Als Kandidat
|
|
59
|
+
geführt, nicht hier behoben.
|
|
60
|
+
|
|
61
|
+
## 3. Gegenbeweis gegen den Vorstand
|
|
62
|
+
|
|
63
|
+
### Prüfung 43 – an einem echten Projekt, nicht an einer Konstruktion
|
|
64
|
+
|
|
65
|
+
Zuschnitt: der **alte Stand des Übungsrepositoriums** (`a2dab6b`, Framework 0.13.0, via
|
|
66
|
+
`git archive`), sein `leitwerk-core/` durch das aus 0.45.0 ersetzt, **kein** `--update` –
|
|
67
|
+
damit die Projektdateien den Auslieferungszustand behalten.
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
FEHLER .devin/config.json: trägt keinen 'hooks'-Block. […] Daneben liegt
|
|
71
|
+
.devin/hooks.v1.json: Dort steht eine Regelmenge, die aussieht, als gälte sie —
|
|
72
|
+
der Client liest diese Datei nicht (D-32). […] (D-92)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Die Prüfung findet den Befund, der sie ausgelöst hat**, und ihre Meldung nennt beide
|
|
76
|
+
Hälften der Migration. Die Fehlerzahl ist dabei nachgezählt und nicht nur vorhanden:
|
|
77
|
+
|
|
78
|
+
| Fehler | Herkunft |
|
|
79
|
+
|---|---|
|
|
80
|
+
| 14 | dieselben, die der 0.44.0-Validator meldete (8× Prüfung 42 unerklärt, 3× verlorener Anker, 1× Prüfung 37, 1× Steckbriefversion, 1× Importsteuerung) |
|
|
81
|
+
| **+1** | **Prüfung 43** – der Gegenstand dieses Nachweises |
|
|
82
|
+
| +1 | `AGENTS.md:3` – eine Prüfung, die zwischen 0.13.0 und heute dazugekommen ist. **Gehört zum Zuschnitt, nicht zum Befund:** Ohne `--update` ist die Wurzel-Anweisungsdatei noch die von 0.13.0 |
|
|
83
|
+
| **16** | **gemessen** |
|
|
84
|
+
|
|
85
|
+
### Prüfung 44 – der Gegenbeweis ist konstruktionsbedingt stumm, und das gehört gesagt
|
|
86
|
+
|
|
87
|
+
Zuschnitt: der Vorstand `22b8949` (0.44.0) via `git archive`, geprüft mit dem Validator aus
|
|
88
|
+
0.45.0 über `--root`.
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
FEHLER leitwerk-core/onboarding/exercises/README.md: führt kein Register mehr
|
|
92
|
+
(gesucht: '### Register der Präparationen'). […] (D-93)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Das ist ein Treffer, aber nicht der Gegenstand.** Die Prüfung meldet dort den verlorenen
|
|
96
|
+
Anker, weil das Register mit **diesem** Release entsteht; über Präparationen sagt der
|
|
97
|
+
Vorstand nichts, weil er keine kennt. Der Wirkungsnachweis für Prüfung 44 ruht deshalb
|
|
98
|
+
allein auf ihren drei Sonden und zwei Gegenproben – **nicht** auf einem Fund im Vorstand.
|
|
99
|
+
Das ist dieselbe Lage wie am 2026-09-13 bei Prüfung 33 und sie wird hier genauso
|
|
100
|
+
ausgewiesen, statt eine Zahl zu nennen, die mehr verspricht.
|
|
101
|
+
|
|
102
|
+
Die 46 Fehler, die derselbe Lauf insgesamt meldet, sind **kein Messwert über den Vorstand**:
|
|
103
|
+
Ein neuer Validator gegen einen alten Baum fällt in die Ankertests der Prüfungen, deren
|
|
104
|
+
Gegenstand dort noch fehlt. Das ist bekannt (Protokoll zu 0.33.0) und hier nur erwähnt,
|
|
105
|
+
damit die Zahl niemanden in die Irre führt.
|
|
106
|
+
|
|
107
|
+
## 4. Wo die Prüfungen im eigenen Repositorium stehen
|
|
108
|
+
|
|
109
|
+
| Prüfung | Läuft im Repo-Lauf? | Findet sie dort etwas? |
|
|
110
|
+
|---|---|---|
|
|
111
|
+
| 43 | **ja** – die lokale Testinstallation ist `devin-desktop` und führt ihre Hooks in der Berechtigungsdatei | **nein**, sie trägt ihren Block. Das ist der erwartete Zustand und kein Beleg für Wirkung |
|
|
112
|
+
| 44 | **ja** – beide Register liegen im Repositorium | **nein**, sieben registrierte und sieben gebrauchte Kennungen decken sich |
|
|
113
|
+
|
|
114
|
+
**Prüfung 43 entgeht damit nicht dem Befund B02** (eine Prüfung, die im eigenen
|
|
115
|
+
Repositorium gar nicht ausgeführt wird): Sie läuft. Sie meldet nur nichts, weil hier nichts
|
|
116
|
+
zu melden ist.
|
|
117
|
+
|
|
118
|
+
## 5. Was dieser Nachweis nicht leistet
|
|
119
|
+
|
|
120
|
+
- **Er belegt, dass die Prüfungen wirken, nicht dass ihre Gegenstände richtig sind.** Ob der
|
|
121
|
+
Hook-Block, den eine Installation trägt, den richtigen Hook aufruft, prüfen 15, 16 und 17
|
|
122
|
+
– nicht 43.
|
|
123
|
+
- **Prüfung 44 gleicht zwei Register ab, nicht ein Register gegen die Wirklichkeit.** Ob
|
|
124
|
+
`UEB-02` im Übungsrepository wirklich unter dem genannten Pfad liegt, sieht kein Validator
|
|
125
|
+
dieses Repositoriums.
|
|
126
|
+
- **Kein Lauf gegen einen Client.** Dass ein wiederhergestellter Hook in einer Sitzung
|
|
127
|
+
tatsächlich auslöst, ist hier nicht gemessen – nur, dass die Konfiguration dasteht.
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# Wirkungsnachweise 0.46.0 – der Umbau des Sondenskripts
|
|
2
|
+
|
|
3
|
+
| Feld | Wert |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Datum | 2026-09-15 |
|
|
6
|
+
| Gegenstand | Ausführungsplan, Nebenläufigkeit, Name und Beschreibungssatz je Einheit, Laufzeitauswertung, Aufräumer (D-94 bis D-96) |
|
|
7
|
+
| Antrag | `CR-2026-068` |
|
|
8
|
+
| Grundlage | D-23 und D-49. **Hier ist der Gegenbeweis kein Fallen von Sonden, sondern ein Abgleich:** Der Umbau ändert keine Prüfung, also darf er keine Ergebniszeile ändern außer den angekündigten |
|
|
9
|
+
| Ergebnis | **144 Sonden, 57 Gegenproben, 10 Selbstproben – alle bestanden, in beiden Kodierungsumgebungen zeilengleich und zwischen seriellem und nebenläufigem Lauf zeilengleich** (Exit 0). Validator: 0 Fehler, 0 Warnungen |
|
|
10
|
+
|
|
11
|
+
## 1. Der Vorstand – gemessen, bevor etwas gebaut wurde
|
|
12
|
+
|
|
13
|
+
`python leitwerk-core/tests/scripts/probe-pruefungen.py .` gegen `main` (`750ce10`, 0.45.0):
|
|
14
|
+
|
|
15
|
+
| Größe | Wert |
|
|
16
|
+
|---|---|
|
|
17
|
+
| Laufzeit | **13 min 07 s** (787 s), streng seriell |
|
|
18
|
+
| Ergebniszeilen | **208** – 144 Sonden, 57 Gegenproben, 7 Selbstproben |
|
|
19
|
+
| Ausführungseinheiten | **128** – 79 `sonde(`, 6 `sonde_ohne_wert(`, 29 `gegenprobe(`, 14 `buendel(` |
|
|
20
|
+
| Exit-Code | 0 |
|
|
21
|
+
|
|
22
|
+
Der Lauf sagte nicht, wo die dreizehn Minuten hingehen. Er wird **zweimal je Release**
|
|
23
|
+
gefahren (D-49), also kostet ein Release allein hier über eine halbe Stunde.
|
|
24
|
+
|
|
25
|
+
## 2. Die vier Abnahmeläufe
|
|
26
|
+
|
|
27
|
+
| # | Lauf | Zeilen | Sonden | Gegenproben | Selbstproben | Exit | Wanduhr |
|
|
28
|
+
|---|---|---|---|---|---|---|---|
|
|
29
|
+
| **L1** | `--bahnen 8`, ohne `PYTHONIOENCODING` | 227 | 144 | 57 | 10 | 0 | **110,6 s** |
|
|
30
|
+
| **L2** | `--bahnen 8`, mit `PYTHONIOENCODING=utf-8` | 227 | 144 | 57 | 10 | 0 | **110,8 s** |
|
|
31
|
+
| **L3** | `--bahnen 1`, ohne `PYTHONIOENCODING` | 227 | 144 | 57 | 10 | 0 | **827,4 s** (13 min 47 s) |
|
|
32
|
+
| **L4** | `--bahnen 16`, ohne `PYTHONIOENCODING` | 227 | 144 | 57 | 10 | 0 | **79,7 s** |
|
|
33
|
+
|
|
34
|
+
**Drei Vergleiche, alle über die 227 Zeilen oberhalb der Trennlinie:**
|
|
35
|
+
|
|
36
|
+
| Vergleich | Was er belegt | Ergebnis |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| L1 gegen L2 | die Abnahmeform nach D-49 – beide Kodierungsumgebungen | **kein Unterschied** |
|
|
39
|
+
| L1 gegen L3 | dass die Nebenläufigkeit die Ausgabe nicht verändert – weder Reihenfolge noch Inhalt | **kein Unterschied** |
|
|
40
|
+
| L1 gegen L4 | dass die Bahnenzahl die Ausgabe nicht verändert | **kein Unterschied** |
|
|
41
|
+
|
|
42
|
+
**Der zweite Vergleich ist der eigentliche Nachweis dieses Releases.** Er belegt, dass die
|
|
43
|
+
Sammlung der Zeilen und ihre Ausgabe in der Reihenfolge der **Anmeldung** genau das leisten,
|
|
44
|
+
was sie versprechen: Der nebenläufige Lauf ist vom seriellen nicht zu unterscheiden.
|
|
45
|
+
|
|
46
|
+
## 3. Der Abgleich gegen 0.45.0 – 29 Zeilen und keine weitere
|
|
47
|
+
|
|
48
|
+
`diff` über die Ergebniszeilen, 208 gegen 227:
|
|
49
|
+
|
|
50
|
+
| Art der Abweichung | Anzahl | Warum |
|
|
51
|
+
|---|---|---|
|
|
52
|
+
| verlängerte Beschreibungssätze | **10** | Einzelsonden, die statt eines Satzes nur eine Kennung trugen (D-95) |
|
|
53
|
+
| neue Bündelkopfzeilen | **16** | jedes Bündel nennt jetzt seinen Namen und seinen Satz |
|
|
54
|
+
| neue Selbstprobenzeilen | **3** | `B1` (Wortzahl), `A1` und `A2` (der Aufräumer) |
|
|
55
|
+
| **sonst** | **0** | |
|
|
56
|
+
|
|
57
|
+
**Die Zahl je Art ist unverändert: 144 Sonden, 57 Gegenproben – vorher wie nachher.** Keine
|
|
58
|
+
Prüfung ist angefasst worden, und keine Sonde hat ihren Gegenstand gewechselt.
|
|
59
|
+
|
|
60
|
+
## 4. Der erste Fallstrick: Prüfung 40 hätte den Umbau nicht überlebt
|
|
61
|
+
|
|
62
|
+
Prüfung 40 rechnet die Sondenmenge aus **zwei wörtlichen Mustern** des Sondenskripts aus
|
|
63
|
+
(D-86): dem Aufruf `sonde(` mit seiner Kennung und `melde(` mit der Art `SONDE` und ihr.
|
|
64
|
+
Ein Umbau auf ein Register mit eigener Schreibweise hätte die Sonden unsichtbar gemacht –
|
|
65
|
+
und Prüfung 40 hätte **leise bestanden**, denn eine leere Menge ist keine Abweichung.
|
|
66
|
+
|
|
67
|
+
**Nachgezählt vor und nach dem Umbau, mit demselben Ausdruck, den der Validator verwendet:**
|
|
68
|
+
|
|
69
|
+
| Stand | Prüfungsnummern mit Sonde | Ausgerechnete Schreibweise |
|
|
70
|
+
|---|---|---|
|
|
71
|
+
| 0.45.0 | 6, 18, 19, 20, …, 44 | `6 und 18 bis 44` |
|
|
72
|
+
| 0.46.0 | 6, 18, 19, 20, …, 44 | `6 und 18 bis 44` |
|
|
73
|
+
|
|
74
|
+
Deshalb ist die Aufrufstelle jeder Sonde **zeichengleich** geblieben; geändert hat sich
|
|
75
|
+
allein, **wann** der Aufruf seine Arbeit tut. Und deshalb heißt der Anmelder `eintragen()`:
|
|
76
|
+
|
|
77
|
+
> `anmelden("SONDE", "18b", …)` enthält die Zeichenfolge `melde(` **nicht** – dort folgt auf
|
|
78
|
+
> `melde` ein `n`. `anmelde("SONDE", "18b", …)` hätte sie enthalten, und Prüfung 40 hätte
|
|
79
|
+
> eine Sonde `18b` gezählt, die es nicht gibt. **Der Abstand zwischen beiden Namen ist ein
|
|
80
|
+
> Buchstabe.** Statt ihn zu riskieren, heißt die Funktion `eintragen()`.
|
|
81
|
+
|
|
82
|
+
## 5. Wo die Zeit liegt – und wo die Grenze der Nebenläufigkeit
|
|
83
|
+
|
|
84
|
+
Aus dem Auswertungsblock von L1 (874,2 s Rechenzeit in 110,6 s Wanduhr, Faktor 7,9):
|
|
85
|
+
|
|
86
|
+
| Einheit | Laufzeit | Anteil an der Rechenzeit |
|
|
87
|
+
|---|---|---|
|
|
88
|
+
| `sonden_schlitzinhalte` | **64,0 s** | 7,3 % |
|
|
89
|
+
| `sonden_kandidatenpruefung` | 43,8 s | 5,0 % |
|
|
90
|
+
| `sonden_aktivierungspruefung` | 37,2 s | 4,3 % |
|
|
91
|
+
| `sonden_berechtigungskoerbe` | 31,2 s | 3,6 % |
|
|
92
|
+
| `sonden_hookblock` | 30,4 s | 3,5 % |
|
|
93
|
+
| `sonden_skill_deny` | 21,4 s | 2,4 % |
|
|
94
|
+
| **sechs Bündel zusammen** | **228 s** | **26 %** |
|
|
95
|
+
| **114 Einzeleinheiten, je rund 5,8 s** | **rund 645 s** | **74 %** |
|
|
96
|
+
|
|
97
|
+
**Zwei Zahlen, die zusammen etwas sagen, das keine allein sagt.** Die Einzeleinheiten
|
|
98
|
+
tragen drei Viertel der *Rechenzeit* und sind beliebig teilbar; die Bündel tragen ein
|
|
99
|
+
Viertel und sind **gar nicht** teilbar. Damit ist die Wanduhr nach unten begrenzt:
|
|
100
|
+
|
|
101
|
+
> **Kein noch so breiter Lauf kommt unter 64,0 s**, solange `sonden_schlitzinhalte` die
|
|
102
|
+
> längste Einheit ist – denn ein Bündel ist die kleinste Einheit, nie seine Teile (F3). Die
|
|
103
|
+
> Schranke ist keine Schwäche der Umsetzung, sondern die Entscheidung selbst, sichtbar
|
|
104
|
+
> gemacht.
|
|
105
|
+
|
|
106
|
+
**L4 misst das nach, und das Ergebnis ist zweischneidig:**
|
|
107
|
+
|
|
108
|
+
| Lauf | Bahnen | Wanduhr | Rechenzeit | Faktor |
|
|
109
|
+
|---|---|---|---|---|
|
|
110
|
+
| L3 | 1 | 827,4 s | 827,4 s | – |
|
|
111
|
+
| L1 | 8 | **110,6 s** | 874,2 s | 7,9 |
|
|
112
|
+
| L4 | 16 | **79,7 s** | **1079,6 s** | 13,5 |
|
|
113
|
+
|
|
114
|
+
Die doppelte Bahnenzahl bringt **28 % weniger Wanduhr** und kostet **23 % mehr
|
|
115
|
+
Rechenzeit**. Das ist der Beleg dafür, dass nicht die Rechenzeit der Engpass ist,
|
|
116
|
+
sondern die Platte: Jede Einheit legt eine eigene Kopie des Repositoriums an, und
|
|
117
|
+
sechzehn gleichzeitige Kopiervorgänge machen jeden einzelnen langsamer. **Die 79,7 s
|
|
118
|
+
liegen zudem schon nahe an der Schranke von 64,0 s** – mehr Bahnen können die
|
|
119
|
+
längste Einheit nicht teilen.
|
|
120
|
+
|
|
121
|
+
**Deshalb bleibt die Vorgabe bei 8 und ist eine feste Zahl:** Sie holt 7,9 von
|
|
122
|
+
theoretisch 8 heraus, ohne Rechenzeit zu verbrennen. Was der beste Wert auf einer
|
|
123
|
+
anderen Maschine ist, ist damit nicht gesagt – und soll es nicht sein.
|
|
124
|
+
|
|
125
|
+
## 6. Der Aufräumer – und warum er eine eigene Selbstprobe bekommt
|
|
126
|
+
|
|
127
|
+
An **vierzehn** Stellen stand `shutil.rmtree(..., ignore_errors=True)`, während der
|
|
128
|
+
Kopfsatz des Skripts zusagt: *„Gearbeitet wird auf einer Kopie; das Repositorium selbst
|
|
129
|
+
bleibt unberührt."* Die zweite Hälfte dieser Zusage – dass die Kopie danach wieder weg ist
|
|
130
|
+
– hatte **keinen Mechanismus**.
|
|
131
|
+
|
|
132
|
+
`aufraeumen()` versucht dreimal über 1,5 s und meldet danach mit Pfad und Grund. **Eine
|
|
133
|
+
Meldung, die geschrieben und nie ausgelöst wurde, ist nach D-23 nicht vorhanden** – deshalb
|
|
134
|
+
zwei Selbstproben:
|
|
135
|
+
|
|
136
|
+
| Kennung | Was sie herstellt | Erwartung |
|
|
137
|
+
|---|---|---|
|
|
138
|
+
| `A1` | ein gewöhnliches Arbeitsverzeichnis mit einer Datei darin | gelöscht, **und keine Zeile im Lauf** |
|
|
139
|
+
| `A2` | ein Verzeichnis, das sich nicht löschen lässt | `AUFRAEUMER … bleibt liegen` mit dem Pfad, und **eine** Abweichung |
|
|
140
|
+
|
|
141
|
+
**Der Ausfall muss je Betriebssystem anders hergestellt werden, und das ist der Teil, an
|
|
142
|
+
dem die Probe sonst nichts gemessen hätte:**
|
|
143
|
+
|
|
144
|
+
| System | Mechanismus | Warum der andere nicht trägt |
|
|
145
|
+
|---|---|---|
|
|
146
|
+
| Windows | eine offene Datei im Verzeichnis | gemessen: `PermissionError [WinError 32]` |
|
|
147
|
+
| POSIX | dem Verzeichnis das Schreibrecht entziehen (`0o500`) | eine offene Datei verhindert das Löschen dort **nicht** – die Probe wäre eine Zeile, die nichts misst |
|
|
148
|
+
|
|
149
|
+
**Gemessen wird gegen eine Hilfseinheit**, nicht gegen die laufende: Der Aufräumer meldet in
|
|
150
|
+
die Einheit, in der er gerufen wird. Täte er das hier, zählte der absichtlich
|
|
151
|
+
herbeigeführte Ausfall als Abweichung des Laufs – die Selbstprobe erzeugte den Befund, den
|
|
152
|
+
sie misst.
|
|
153
|
+
|
|
154
|
+
**Gemessen ist damit, dass die Meldung kommt, wenn sie kommen muss.** Nicht gemessen ist,
|
|
155
|
+
ob drei Versuche über 1,5 s für den echten Fall reichen: In keinem der vier Abnahmeläufe
|
|
156
|
+
ist eine Kopie unbeabsichtigt liegen geblieben.
|
|
157
|
+
|
|
158
|
+
## 7. Selbstprobe B1 – und was sie nicht leistet
|
|
159
|
+
|
|
160
|
+
`B1` zählt die Worte jedes Beschreibungssatzes und meldet jeden Ausreißer. Vor dem Umbau
|
|
161
|
+
hätte sie **24 Abweichungen** gemeldet: zehn zu kurze Einzelsätze und vierzehn Bündel ohne
|
|
162
|
+
Satz.
|
|
163
|
+
|
|
164
|
+
**Ihre Grenze steht in ihrem Kopfkommentar, weil sie sonst mehr verspräche, als sie
|
|
165
|
+
leistet:** Sie zählt **Worte, nicht Sinn**. Ein Satz aus achtzehn Füllwörtern besteht sie.
|
|
166
|
+
Die untere Grenze fängt die Kennung, die sich als Satz ausgibt („Pack ohne
|
|
167
|
+
Auskunftsabschnitt", drei Worte), die obere den Absatz, der sich in eine Zeile verirrt hat.
|
|
168
|
+
Dazwischen entscheidet der Mensch, und das ist Absicht.
|
|
169
|
+
|
|
170
|
+
## 8. Was dieses Protokoll nicht belegt
|
|
171
|
+
|
|
172
|
+
- **Nicht, dass acht Bahnen der beste Wert sind.** Gemessen sind drei Punkte auf **einer**
|
|
173
|
+
Maschine mit 32 Kernen und einer SSD. Auf einem Rechner mit anderer Platte kann die
|
|
174
|
+
Kurve anders liegen; die Vorgabe ist bewusst eine feste Zahl und keine Eigenschaft der
|
|
175
|
+
Maschine, sonst wären zwei Laufzeiten unvergleichbar.
|
|
176
|
+
- **Nicht, dass die Laufzeiten reproduzierbar sind.** Sie sind es nicht, und genau deshalb
|
|
177
|
+
stehen sie unterhalb der Trennlinie. Was sie belegen, ist die **Verteilung**.
|
|
178
|
+
- **Nicht, welcher Fall innerhalb eines Bündels teuer ist.** Ein Bündel bekommt eine Zahl,
|
|
179
|
+
nicht fünfunddreißig. Wer wissen will, welcher der sieben Eingriffe in
|
|
180
|
+
`sonden_berechtigungskoerbe` die Zeit kostet, erfährt es aus diesem Lauf nicht.
|
|
181
|
+
- **Nicht, dass die Prüfungen richtig sind.** Dieses Release fasst keine Prüfung an; es
|
|
182
|
+
verändert das Werkzeug, mit dem sie gemessen werden. Die Grenze jeder einzelnen Prüfung
|
|
183
|
+
steht unverändert in ihrem Kopfkommentar.
|
|
184
|
+
|
|
185
|
+
## 9. Anmerkung zur Reihenfolge
|
|
186
|
+
|
|
187
|
+
Die vier Abnahmeläufe L1 bis L4 liefen gegen den Arbeitsbaum **ohne diese Datei**, die es
|
|
188
|
+
zum Zeitpunkt der Läufe noch nicht gab – jedes Protokoll hat dieses Problem, weil es
|
|
189
|
+
über Läufe berichtet, die vor ihm stattfanden.
|
|
190
|
+
|
|
191
|
+
**Deshalb ein fünfter Lauf gegen den vollständigen Baum**, so wie er in den Commit geht:
|
|
192
|
+
`--bahnen 8`, ohne `PYTHONIOENCODING`, 227 Zeilen, Exit 0, 111,7 s – und **zeilengleich
|
|
193
|
+
zu L1**. Der Validatorlauf gegen denselben Baum meldet 0 Fehler und 0 Warnungen.
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Wirkungsnachweise 0.47.0 – Prüfung 45 und der erste Fall des Aufräumers
|
|
2
|
+
|
|
3
|
+
| Feld | Wert |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Datum | 2026-09-15 |
|
|
6
|
+
| Gegenstand | Prüfung 45 (Bytecode des Kerns, D-97) und die Behebung am Aufräumer aus 0.46.0 |
|
|
7
|
+
| Antrag | `CR-2026-069` |
|
|
8
|
+
| Grundlage | D-23: Eine Prüfung gilt erst als vorhanden, wenn sie eine bewusst gesetzte Sonde meldet. Dazu der Gegenbeweis gegen den Vorstand |
|
|
9
|
+
| Ergebnis | **148 Sonden, 59 Gegenproben, 11 Selbstproben – alle bestanden, in beiden Kodierungsumgebungen zeilengleich** (Exit 0). Validator: 0 Fehler, 0 Warnungen. **Gegenbeweis gegen 0.46.0: vier Fundstellen, und beide Gegenproben bestehen dort** |
|
|
10
|
+
|
|
11
|
+
## 1. Der Befund, abgezählt
|
|
12
|
+
|
|
13
|
+
| Projekt | Framework-Stand | Versionierte `.pyc` unter `leitwerk-core/` | `.gitignore` deckt `__pycache__` |
|
|
14
|
+
|---|---|---|---|
|
|
15
|
+
| `devpacks/otp-generator` (Pilot) | 0.41.0 | **6** | nein |
|
|
16
|
+
| `devpacks/test-devin-framework` (Übungsrepo) | 0.45.0 | **2** | nein |
|
|
17
|
+
| `devpacks/leitwerk` (Framework selbst) | 0.46.0 | 0 | **ja** |
|
|
18
|
+
|
|
19
|
+
**Zwei von zwei Projekten.** Der Weg zum Befund steht in
|
|
20
|
+
`2026-09-15-migrationslauf-pilot-0.46.0.md`, Abschnitt 5.
|
|
21
|
+
|
|
22
|
+
## 2. Der Sondenlauf
|
|
23
|
+
|
|
24
|
+
Abnahmeform seit D-49: zwei Läufe, einmal ohne und einmal mit `PYTHONIOENCODING=utf-8`.
|
|
25
|
+
Seit 0.46.0 zusätzlich der Vergleich zwischen seriellem und nebenläufigem Lauf.
|
|
26
|
+
|
|
27
|
+
| Lauf | Zeilen | Sonden | Gegenproben | Selbstproben | Exit | Wanduhr |
|
|
28
|
+
|---|---|---|---|---|---|---|
|
|
29
|
+
| `--bahnen 8`, ohne `PYTHONIOENCODING` | 235 | 148 | 59 | 11 | 0 | **118,2 s** |
|
|
30
|
+
| `--bahnen 8`, mit `PYTHONIOENCODING=utf-8` | 235 | 148 | 59 | 11 | 0 | **120,6 s** |
|
|
31
|
+
| `--bahnen 1`, ohne `PYTHONIOENCODING` | 235 | 148 | 59 | 11 | 0 | **911,0 s** |
|
|
32
|
+
|
|
33
|
+
**Beide Ausgaben sind zeilengleich** – `diff` über die 235 Ergebniszeilen oberhalb der Trennlinie: kein Unterschied. Und der serielle Lauf ist **zeilengleich zum nebenläufigen** – die Zusage von 0.46.0 trägt auch die neuen Einheiten, einschließlich derer, die sich ein Repositorium anlegen.
|
|
34
|
+
|
|
35
|
+
Vor diesem Release waren es 144 Sonden, 57 Gegenproben und 10 Selbstproben; die Zunahme
|
|
36
|
+
ist genau die neue: **vier Sonden, zwei Gegenproben, eine Selbstprobe.**
|
|
37
|
+
|
|
38
|
+
| Kennung | Was sie herstellt | Erwartete Meldung |
|
|
39
|
+
|---|---|---|
|
|
40
|
+
| Sonde 45a | Die Deckungszeile fällt aus der `.gitignore` | „deckt den Bytecode des Kerns nicht ab" |
|
|
41
|
+
| Sonde 45b | Die `.gitignore` fehlt ganz | „.gitignore: nicht vorhanden" (**Warnung**, kein Fehler) |
|
|
42
|
+
| Sonde 45c | Ein echtes Repositorium, eine `.pyc` unter `leitwerk-core/` verfolgt – **bei vorhandener Regel** | „sind versioniert", und der Pfad der Datei steht darin |
|
|
43
|
+
| Sonde 45d | Dieselbe Installation **ohne** `git init` | „ist nicht gelaufen" |
|
|
44
|
+
| Gegenprobe 45a | `*.pyc` statt `__pycache__/` – andere Schreibweise, gleiche Wirkung | **keine** Meldung der Prüfung 45 |
|
|
45
|
+
| Gegenprobe 45b | Ein Repositorium ohne verfolgten Bytecode | weder „sind versioniert" **noch** „ist nicht gelaufen" |
|
|
46
|
+
| Selbstprobe A3 | Ein Arbeitsverzeichnis mit einer schreibgeschützten Datei | **keine** Zeile – der Aufräumer räumt weg und schweigt |
|
|
47
|
+
|
|
48
|
+
### 2.1 Die beiden Gegenproben sind hier die schärferen
|
|
49
|
+
|
|
50
|
+
**Gegenprobe 45a** misst die Breite: Ein Projekt, das `*.pyc` schreibt, ist **richtig**.
|
|
51
|
+
Eine Prüfung, die nur `__pycache__/` gelten ließe, meldete den richtigen Text – und das
|
|
52
|
+
ist genau der Fehler, den Prüfung 37 einmal gemacht hat.
|
|
53
|
+
|
|
54
|
+
**Gegenprobe 45b** misst zwei Dinge auf einmal, und das zweite ist das wichtigere: Sie
|
|
55
|
+
verlangt, dass „sind versioniert" **fehlt** – und dass „ist nicht gelaufen" **ebenfalls
|
|
56
|
+
fehlt**. Ohne die zweite Bedingung bestünde sie auch dann, wenn git gar nicht da wäre;
|
|
57
|
+
sie bewiese dann nichts über Gegenstand 2, sondern nur, dass er schwieg. **Eine
|
|
58
|
+
Gegenprobe, die eine abgeschaltete Prüfung nicht von einer schweigenden unterscheidet,
|
|
59
|
+
misst ihren Fall nicht mehr.**
|
|
60
|
+
|
|
61
|
+
### 2.2 Warum die Sonden zu Gegenstand 2 im Bündel stehen
|
|
62
|
+
|
|
63
|
+
`kopie()` lässt `.git` bewusst weg – eine Kopie des Repositoriums ist keins. Gegenstand 2
|
|
64
|
+
ist deshalb auf einer Kopie **nicht herstellbar**; seine Sonden legen sich ihr
|
|
65
|
+
Repositorium selbst an (`installation()`, dann `git init`). Das ist dieselbe Begründung,
|
|
66
|
+
aus der die Sonden zu den Prüfungen 33, 37, 42 und 43 im Bündel stehen: Der Gegenstand
|
|
67
|
+
ist eine installierte Lage, nicht ein Text.
|
|
68
|
+
|
|
69
|
+
**Sonde 45d steht vor dem `git init`** – und zwar bewusst: Genau dieser Zustand, ein Baum
|
|
70
|
+
ohne `.git`, ist der Normalfall **jeder anderen Sonde dieses Skripts**. Sie belegt damit
|
|
71
|
+
zugleich, dass die Warnung, die alle übrigen Sondenläufe jetzt tragen, die richtige ist.
|
|
72
|
+
|
|
73
|
+
## 3. Der Gegenbeweis gegen den Vorstand
|
|
74
|
+
|
|
75
|
+
Gemessen mit dem **neuen** Sondenskript gegen einen **vollständigen** Arbeitsbaum auf
|
|
76
|
+
0.46.0 – Validator, Sondenskript und Testkatalog dort auf dem Stand von `main`, alles
|
|
77
|
+
übrige identisch:
|
|
78
|
+
|
|
79
|
+
| Einheit | Gegen 0.46.0 | Erwartet |
|
|
80
|
+
|---|---|---|
|
|
81
|
+
| Sonde 45a | **FEHL** | fällt |
|
|
82
|
+
| Sonde 45b | **FEHL** | fällt |
|
|
83
|
+
| Sonde 45c | **FEHL** | fällt |
|
|
84
|
+
| Sonde 45d | **FEHL** | fällt |
|
|
85
|
+
| Gegenprobe 45a | OK | **besteht** |
|
|
86
|
+
| Gegenprobe 45b | OK | **besteht** |
|
|
87
|
+
|
|
88
|
+
**Vier Fundstellen, und die beiden Gegenproben bestehen.** Das ist die richtige Form und
|
|
89
|
+
nicht nur die erfreuliche: Eine Gegenprobe stellt einen **zulässigen** Zustand her, und
|
|
90
|
+
ein zulässiger Zustand läuft auch dort durch, wo es die neue Prüfung noch gar nicht gibt.
|
|
91
|
+
Fiele sie gegen den Vorstand, prüfte sie etwas anderes als ihren Fall.
|
|
92
|
+
|
|
93
|
+
> **Ein Zwischenfall, der hier hingehört:** Der erste Versuch des Gegenbeweises lief gegen
|
|
94
|
+
> einen frischen `git worktree` auf `main` – und **alle** Einheiten fielen, auch die
|
|
95
|
+
> Gegenproben. Der Grund ist nicht das Release: Das Framework-Repositorium versioniert
|
|
96
|
+
> seine Wurzelerzeugnisse bewusst **nicht** (sie entstehen aus `install.py`), und ein
|
|
97
|
+
> frischer Worktree hat sie deshalb nicht. Sein eigener Validatorlauf meldete **46 Fehler**.
|
|
98
|
+
> **Ein Vorstand ohne Wurzelerzeugnisse ist kein Vorstand**, und eine Gegenprobe, die
|
|
99
|
+
> „0 Fehler" verlangt, fällt dort aus einem Grund, der mit ihrem Gegenstand nichts zu tun
|
|
100
|
+
> hat. Der Vorstand ist deshalb ein vollständiger Arbeitsbaum mit drei zurückgesetzten
|
|
101
|
+
> Dateien – und der meldet 0 Fehler, 0 Warnungen.
|
|
102
|
+
|
|
103
|
+
## 4. Der Aufräumer aus 0.46.0 – sein erster echter Fall
|
|
104
|
+
|
|
105
|
+
Die Sonde zu Gegenstand 2 legt ein Repositorium an. **Git schreibt seine Objektdateien
|
|
106
|
+
schreibgeschützt.** Der Aufräumer versuchte dreimal über anderthalb Sekunden zu löschen
|
|
107
|
+
und meldete:
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
AUFRAEUMER - FEHL sonden_bytecode: C:\…\lw-inst-p8auo49r bleibt liegen
|
|
111
|
+
[WinError 5] Zugriff verweigert: …\.git\objects\03\7c6087d4df…
|
|
112
|
+
3 Versuche ueber 1,5 s, danach aufgegeben.
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Er hatte recht und war trotzdem nutzlos.** Er meldete einen Zustand, den er selbst
|
|
116
|
+
hätte auflösen können: *Warten hilft gegen eine gehaltene Datei und gar nichts gegen eine
|
|
117
|
+
schreibgeschützte.* Die Roadmap führte genau diese Frage als offenen Punkt von 0.46.0
|
|
118
|
+
(„unerhoben, ob drei Versuche über 1,5 s für den echten Fall reichen") – **der Fall ist
|
|
119
|
+
da, und die Antwort ist nein.**
|
|
120
|
+
|
|
121
|
+
Jeder Versuch ab dem zweiten nimmt jetzt zuerst den Schreibschutz im ganzen Baum weg.
|
|
122
|
+
**Ohne `onerror`/`onexc` von `shutil.rmtree`:** Die beiden Namen haben sich zwischen den
|
|
123
|
+
Python-Fassungen abgelöst, und ein Nachweiswerkzeug, das an der Fassung seines
|
|
124
|
+
Interpreters hängt, ist genau das, was D-49 abgeschafft hat.
|
|
125
|
+
|
|
126
|
+
**Die Selbstprobe `A3` misst es** – eine Behebung ohne Sonde ist nach D-23 keine. Sie
|
|
127
|
+
gilt auf beiden Betriebssystemen, aus verschiedenen Gründen: Unter Windows belegt sie den
|
|
128
|
+
Mechanismus, unter POSIX, dass er nichts kaputt macht (dort blockiert eine
|
|
129
|
+
schreibgeschützte *Datei* das Löschen ohnehin nicht). **Wer den Mechanismus unter Windows
|
|
130
|
+
entfernt, macht sie rot.**
|
|
131
|
+
|
|
132
|
+
> **Das ist der Ertrag von 0.46.0, eingelöst binnen eines Releases:** Bis dahin stand an
|
|
133
|
+
> dieser Stelle `ignore_errors=True`. Das Verzeichnis wäre liegen geblieben, der Lauf
|
|
134
|
+
> wäre grün gewesen, und niemand hätte je erfahren, dass die Sonde zu Prüfung 45 bei
|
|
135
|
+
> jedem Lauf ein Repositorium auf der Platte zurücklässt.
|
|
136
|
+
|
|
137
|
+
## 5. Was dieses Protokoll nicht belegt
|
|
138
|
+
|
|
139
|
+
- **Nicht, dass die Deckungsliste vollständig ist.** Fünf Schreibweisen gelten; eine
|
|
140
|
+
wirksame, aber exotische sechste meldet die Prüfung als fehlend. Die Grenze steht im
|
|
141
|
+
Kopfkommentar.
|
|
142
|
+
- **Nicht, dass Gegenstand 1 die Wirkung prüft.** Eine Regel, die durch eine spätere
|
|
143
|
+
Ausnahmezeile (`!*.pyc`) wieder aufgehoben wird, fällt ihm nicht auf. Den Fall fängt
|
|
144
|
+
Gegenstand 2 – aber nur, wo git da ist.
|
|
145
|
+
- **Nicht, dass drei Versuche jetzt reichen.** Sie reichen gegen den Schreibschutz, weil
|
|
146
|
+
er gelöst wird, und gegen eine kurz gehaltene Datei. Gegen eine dauerhaft geöffnete
|
|
147
|
+
reichen sie nicht – und genau das misst `A2`, indem sie sie herstellt.
|
|
148
|
+
- **Nicht, dass das Übungsrepositorium hergerichtet ist.** Es führt weiterhin zwei
|
|
149
|
+
versionierte `.pyc` und steht auf 0.45.0. Das gehört zum nächsten Heben dorthin.
|