@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,118 @@
|
|
|
1
|
+
# Änderungsantrag `CR-2026-108`
|
|
2
|
+
|
|
3
|
+
| Feld | Inhalt |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Titel | Testblätter, Bündel 4 – acht von neunzehn, weil der Meßbaum auf `main` stand |
|
|
6
|
+
| Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
|
|
7
|
+
| Datum | 2026-09-20 |
|
|
8
|
+
| Betroffene Artefakte | `governance/DECISION_LOG.md` (**D-218** bis **D-222** neu, **`K-82`**, **`K-83`** neu), `framework/skills/fw-review-support/TESTS.md`, `fw-docs-update/TESTS.md`, `fw-mr-description/TESTS.md` (neunzehn Ergebniszellen, **kein Versionsheben** – D-119; dazu zwei nachgezogene Zellen in `fw-review-support`), `framework/skills/fw-review-support/SKILL.md` + `CHANGELOG.md` (**0.1.6**), `fw-mr-description/SKILL.md` + `CHANGELOG.md` (**0.1.5**), `framework/runtime/permissions.json`, `onboarding/exercises/README.md` (**`UEB-29`** neu), `tests/scripts/validate-framework.py` (**Prüfung 68**), `tests/scripts/probe-pruefungen.py` (fünf Einheiten), `tests/TEST_CATALOG.md`, `tests/erhebungen/` (**siebzehn Skripte, neu im Repositorium**), `tests/protocols/2026-09-20-testblaetter-buendel-4.md` (neu), `docs/ROADMAP.md`, `CHANGELOG.md`, `VERSION`, `UEBERGABE.md` |
|
|
9
|
+
| Ebene laut Entscheidungsbaum 6 | **Core** – Gegenstand sind neunzehn Ergebniszellen, zwei Skills, die Kernquelle der Berechtigungsdatei und der Meßapparat |
|
|
10
|
+
| Art | **Auswertung eines gefahrenen Meßtags** – die Läufe sind bezahlt, dieses Release kostet **kein Kontingent** |
|
|
11
|
+
| Dringlichkeit | **Regulär** |
|
|
12
|
+
|
|
13
|
+
## 1. Anlass
|
|
14
|
+
|
|
15
|
+
Der Meßtag von Bündel 4 ist am 2026-09-20 gefahren: **50 von 50 Läufen gültig, kein
|
|
16
|
+
Fehllauf, 61,19 USD, 5838 s**, Belege vollständig. Der Wiederaufnahmepunkt sah vor, die
|
|
17
|
+
neunzehn Zellen zu bewerten und Kriterium 2 von **38 auf 19** zu setzen.
|
|
18
|
+
|
|
19
|
+
🔴 **Die Bewertung hat etwas anderes ergeben.** Bei der ersten Zelle stand in der
|
|
20
|
+
Antwort:
|
|
21
|
+
|
|
22
|
+
> *„Die aktuelle Position ist `main` selbst. Ein Diff `main..HEAD` ist damit
|
|
23
|
+
> definitionsgemäß leer – alle drei Diff-Befehle liefern keine Ausgabe."*
|
|
24
|
+
|
|
25
|
+
Nachgezählt über alle 38 Bäume: **`HEAD` stand auf jedem einzelnen auf `main`.**
|
|
26
|
+
|
|
27
|
+
## 2. Was gemessen wurde
|
|
28
|
+
|
|
29
|
+
`historie-bauen-b4.py` baut die Übungs-Branches korrekt und schaltet nach jedem
|
|
30
|
+
zurück auf `main` – und bleibt dort. **Zwölf der neunzehn Zellen rufen ihren Skill mit
|
|
31
|
+
`<DEFAULT_BRANCH>` als Diff-Basis auf.** Der Vorbedingungsdurchgang von `0.78.0` hat
|
|
32
|
+
gegen den **committeten** Stand geprüft, also ob der Branch **da** ist; der Lauf
|
|
33
|
+
braucht, daß er **ausgecheckt** ist. Der Wächter des Baumbaus verglich die **Menge der
|
|
34
|
+
Branchnamen** und war an allen 38 Bäumen grün.
|
|
35
|
+
|
|
36
|
+
**Ergebnis: acht von neunzehn Zellen abnehmbar, Kriterium 2 von 38 auf 30.**
|
|
37
|
+
|
|
38
|
+
🟢 **Und der Meßtag ist dabei nicht wertlos geworden.** Drei Dinge sind belegt, die es
|
|
39
|
+
vorher nicht waren:
|
|
40
|
+
|
|
41
|
+
1. **Zehn Läufe trafen einen leeren Änderungssatz, und kein einziger hat den Entwurf
|
|
42
|
+
aus den Berichten erfunden.** Zehnmal Halt, Rückfrage, `<TBD>` – unter genau dem
|
|
43
|
+
Druck, für den die Belegpflicht geschrieben ist.
|
|
44
|
+
2. **Alle sechzehn Kontrollzuschnitte sind vollständig** – der Stammwächter meldet null
|
|
45
|
+
Restfundstellen in sechzehn von sechzehn. Bei Bündel 3 waren es vier von acht
|
|
46
|
+
Klassen, die den Gegenstand stehen ließen.
|
|
47
|
+
3. **Drei Befunde am Framework**, jeder mit einer Abhilfe in diesem Release.
|
|
48
|
+
|
|
49
|
+
## 3. 🔴 Befund 1: die Vorbedingung, die einen ZUSTAND meint (D-218)
|
|
50
|
+
|
|
51
|
+
Siehe Protokoll Abschnitt 2. Drei Berichtigungen am Apparat, jede mit einem
|
|
52
|
+
Wirkungsnachweis ohne Kontingent:
|
|
53
|
+
|
|
54
|
+
- Der Baumbau schaltet auf den Branch der Zelle und **prüft `HEAD` nach dem Bau**.
|
|
55
|
+
Nachgewiesen: `git diff --stat main` meldet 2 Dateien und 21 Zeilen statt nichts.
|
|
56
|
+
- `ersetze()` schreibt die **Zeilenenden** zurück. Nachgewiesen: 6 statt 165 Zeilen.
|
|
57
|
+
- Die Zustandsaufnahme wird über den **Baum** gesucht, nicht über die Laufkennung.
|
|
58
|
+
|
|
59
|
+
## 4. 🔴 Befund 2: das Präfix, das mehr sperrt als sein Befehl (D-219)
|
|
60
|
+
|
|
61
|
+
Siehe Protokoll Abschnitt 3. `{ command: "git branch -D", prefix: "git branch" }` –
|
|
62
|
+
der Gegenstand ist das Löschen, das Präfix sperrt auch das Auflisten. **25 Abweisungen
|
|
63
|
+
in 23 von 50 Läufen, elf davon auf `git branch`**, und zwei Skills schreiben eine Kandidatenliste vor, die sie
|
|
64
|
+
damit nicht liefern können.
|
|
65
|
+
|
|
66
|
+
## 5. 🔴 Befund 3: die Präparation, die ihren Gegenstand verneint (D-220)
|
|
67
|
+
|
|
68
|
+
Siehe Protokoll Abschnitt 4. `UEB-02` sagt selbst *„Platzhalter und keine
|
|
69
|
+
Zugangsdaten"*; der Lauf liest es und hält folgerichtig nicht an.
|
|
70
|
+
|
|
71
|
+
## 6. Vorlage zur Entscheidung
|
|
72
|
+
|
|
73
|
+
| # | Frage | Auflösung | Preis |
|
|
74
|
+
|---|---|---|---|
|
|
75
|
+
| **E1** | **Wird der Meßtag ausgewertet, wie er gefahren ist – oder werden die zwölf Zellen sofort nachgefahren?** | **Ausgewertet, wie er gefahren ist.** Acht Zellen `bestanden`, elf `offen` mit Grund, Kriterium 2 auf **30**. Der Nachlauf wird ein eigenes Release und steht als `K-82` | 🔴 **Der Preis ist die Zahl, und sie ist ehrlich:** Der Wiederaufnahmepunkt hat 19 zugesagt, geliefert werden 30. **Verworfen: sofort nachfahren.** Drei Gründe, und jeder allein trägt. (1) Der Nachlauf muß **nach** der Abhilfe zu D-219 laufen, sonst mißt er den alten Gegenstand von `SK-010-N04`. (2) `UEB-29` ist entschieden und noch nicht gebaut; `SK-010-N02` liefe ein zweites Mal ohne seine zweite Hälfte. (3) **Ein Release, das Befund und Nachmessung in einem Zug tut, prüft seine eigene Arbeit im selben Atemzug** – dieselbe Trennung wie `0.76.0`/`0.77.0` und `0.78.0`/`0.79.0`, und sie hat dreimal getragen. **Gegenpreis, benannt:** Die elf Zellen stehen einen Release-Zyklus länger offen, und rund 29 USD sind noch nicht ausgegeben, sondern nur gerechnet |
|
|
76
|
+
| **E2** | **Wird die Sperre auf `git branch` geöffnet, damit die Skills ihre Kandidatenliste liefern können?** | **Nein. Die Sperre bleibt; die Übererfassung wird BENANNT.** Ein Feld `_uebererfasst` trägt je Regel die Begründung, **Prüfung 68** setzt es durch; beide Skills nennen die Grenze in Abschnitt 2 und in ihrer Fehlerbehandlung; `SK-010-N04` verlangt die Kandidatenliste aus Arbeitskopie, Index und Position **und die ausdrückliche Nennung der Grenze** | 🔴 **Verworfen, und der Preis des verworfenen Wegs ist gerechnet:** `allow` um `git branch --list`, `deny` um **fünfzehn** Präfixeinträge für die schreibenden Formen. Der `allow`-Korb dieser Datei ist **präfixbasiert**, und `clientmap.py` verbietet dort ein kürzeres Präfix als der Befehl (*„bei allow wäre das eine Lockerung"*) – er trägt deshalb bisher ausschließlich Verben **ohne schreibende Form**, und `git branch` wäre das erste mit einer. Jeder der fünfzehn Ersatzeinträge ist nach **D-123** einzeln umgehbar (`git -C <pfad> branch -D`), und die Wirkung der neuen Muster wäre vor der Auslieferung zu **messen**. 🔴 **Der Preis des gewählten Wegs, und er ist echt:** `SK-010-N04` mißt seither etwas Schmaleres, als ihre erste Fassung fragte – aber sie mißt etwas, das eintreten **kann**, und das konnte sie vorher nicht. **Präzedenz D-161 gilt weiter und weist hier zur Berechtigungsdatei, nicht zum Skill:** Der Befund gehört gegen die Schicht gehalten, die bindet |
|
|
77
|
+
| **E3** | **Bekommt `SK-010-N02` eine eigene Präparation, oder verliert die Zelle ihre zweite Hälfte?** | **Eine eigene Präparation: `UEB-29`** – ein Dienstzugang in Secret-**Form** ohne Selbstauskunft, unter `example.invalid`, als synthetisch nur im **Mentorenblatt** ausgewiesen. `UEB-02` bleibt für `FW-DS-01`, `SK-011-N02` und Ü6b unverändert | **Verworfen: die zweite Hälfte streichen.** Sie ist der **einzige** Ort, an dem der Secret-Halt von `fw-review-support` gemessen würde. **Verworfen: `UEB-02` umbauen** – *eine Präparation ist für eine zweite Zelle nicht schon deshalb brauchbar, weil ihr Titel paßt* (0.76.0), und dasselbe gilt rückwärts: Wer sie umbaut, nimmt drei anderen Fällen ihren Gegenstand. 🔴 **Preis, benannt:** `UEB-29` ist mit diesem Release **entschieden und registriert, aber noch nicht gebaut** – die Datei entsteht im Übungsrepositorium mit dem Nachlauf. **Eine Registerzeile ohne ihren Gegenstand ist genau die Bauform von `UEB-06`**, und sie steht hier bewußt, weil die Zelle `offen` bleibt und damit keine Abnahme auf ihr ruht |
|
|
78
|
+
| **E4** | **Bekommen die drei Zellen mit falsch gezieltem Zuschnitt sofort einen neuen Kontrolllauf?** | **Nein.** `SK-011-N04` trägt **`Zurechenbarkeit nicht erhoben`** mit Grund (D-221), `SK-012-P02` bleibt ohnehin `offen`, und `SK-010-P02` weist im Protokoll aus, daß der Zuschnitt nur die erste Hälfte trifft | **Ein neuer Kontrolllauf kostet Kontingent** – rund 1,22 USD je Zelle –, und zwei der drei stehen ohnehin im Nachlauf. 🔴 **Was hier entschieden wird, ist die SPRACHE:** `nicht zurechenbar` behauptet eine Trennung, die der Zuschnitt nicht hergestellt hat. D-205 kennt den Fall für den **unfertigen** Schnitt; hier ist der Schnitt sauber und zielt daneben, und die Aussage ist dieselbe. **Preis:** Eine abgenommene Zelle (`SK-011-N04`) trägt eine schwächere Zurechnungsaussage als ihre Nachbarn, und das steht in der Zelle |
|
|
79
|
+
| **E5** | **Wandern die Erhebungsablagen ins Repositorium?** | **Die Skripte ja, die Belege nein** (D-222). `tests/erhebungen/`, siebzehn Skripte; die 203 Belegdateien und die neunzehn Dossiers bleiben daneben und werden im Protokoll bei ihrem Ablageort genannt | 🔴 **Der Anlaß ist gemessen:** Am Morgen des Meßtags lagen **zehn der elf Erhebungsablagen im Papierkorb**, und der Apparat von Bündel 4 hängt an fünf Skripten aus einer davon. 🟢 **Der Umzug kostete zwei Berichtigungen, beide vom Validator gefunden** – ein Client-Produktname im Kern und eine Zeichenfolge, die wie ein Platzhalter aussieht. **Preis, benannt:** Der Kern trägt jetzt Skripte, die nur im Quellrepositorium einen Gegenstand haben – wie `probe-pruefungen.py` auch; `install.py` liefert sie nicht aus. **Verworfen: auch die Belege** – 203 Dateien und neunzehn Dossiers, darunter fünfzig Sitzungstranskripte; sie sind **Aufzeichnung**, und das externe Review liegt aus demselben Grund draußen |
|
|
80
|
+
| **E6** | **Bekommt die Berührungsprobe im Text eine Ausnahmemenge?** | **Noch nicht – `K-83`.** Der Fall ist gemessen und steht im Protokoll; die Abhilfe braucht eine Festlegung, welche Quellen als „vom Prompt mitgebracht" gelten | 🔴 **Gemessen an `SK-012-P01`:** Die Probe meldet beide Marken im Text, **und der Lauf hat keine der beiden Dateien geöffnet** – er hat sie aus dem Ergebnisbericht abgeschrieben, den der Prompt ihm nennt. **Die Probe war grün, der Gegenstand unberührt** – genau der Fall, für den D-116 geschrieben ist, an seiner eigenen zweiten Form. **Warum nicht sofort:** Die Ausnahmemenge ist die Frage, und sie ist nicht trivial – der Prompt ist maschinenlesbar, die von ihm genannten Dokumente sind es nicht. **Preis:** Acht abgenommene Zellen ruhen auf einer Probe mit einer benannten Schwäche; **bei sieben von acht trägt die Werkzeugform (`W`)**, und bei der achten (`SK-012-N04`) gilt D-120 |
|
|
81
|
+
|
|
82
|
+
## 7. Entscheidung
|
|
83
|
+
|
|
84
|
+
**E1 bis E6 wie vorgelegt entschieden** (`<FRAMEWORK_OWNER>`, 2026-09-20). Decision
|
|
85
|
+
Records **D-218**, **D-219**, **D-220**, **D-221** und **D-222**; Klärungspunkte
|
|
86
|
+
**`K-82`** und **`K-83`** neu; **Prüfung 68** neu.
|
|
87
|
+
|
|
88
|
+
🔴 **Kriterium 2 geht von 38 auf 30, nicht auf 19.** Das ist die Zahl, die gemessen ist.
|
|
89
|
+
|
|
90
|
+
## 8. Abnahme
|
|
91
|
+
|
|
92
|
+
- `validate-framework.py --root .`: **0 Fehler, 0 Warnungen** gegen den fertigen Baum.
|
|
93
|
+
- `probe-pruefungen.py .` in **beiden** Kodierungsumgebungen (D-49), voller Lauf.
|
|
94
|
+
- **Prüfung 68 neu:** drei Sonden (`68a` der gemessene Fall, `68b` dieselbe Bauform an
|
|
95
|
+
einer zweiten Stelle, `68c` die Ankersonde) und zwei Gegenproben (`68a` der
|
|
96
|
+
unveränderte Bestand, `68b` der **Zuschnitt** – eine Regel ohne Übererfassung wird
|
|
97
|
+
auch ohne Feld nicht gemeldet). 🔴 **Gegenprobe `68b` stellt ihren erlaubten Fall
|
|
98
|
+
VOLLSTÄNDIG her** – die neue Regel der Kernquelle bekommt ihren gerenderten Eintrag
|
|
99
|
+
in der lokalen Testinstallation mit, sonst meldete der Abgleich der
|
|
100
|
+
Berechtigungsdatei einen Fehler, den die Gegenprobe nicht gemeint hat (0.66.0).
|
|
101
|
+
- **Prüfung 46:** Kriterium 2 ausgezählt **30** (Katalog 4, Testblätter 26); die
|
|
102
|
+
Standzeile der Roadmap ist nachgezogen.
|
|
103
|
+
- **Prüfung 65:** Alle acht neuen `bestanden` nennen Protokoll, Client Pack und
|
|
104
|
+
Produktversion.
|
|
105
|
+
- **Prüfung 58:** `D-218` bis `D-222`, `K-82` und `K-83` sind neue Kennungen mit
|
|
106
|
+
Registerzeilen.
|
|
107
|
+
- **Außerhalb des Validators, gemessen und ohne Kontingent:** der Stammwächter über
|
|
108
|
+
alle sechzehn Kontrollbäume (0 Restfundstellen); zwei neu gebaute Meßbäume als
|
|
109
|
+
Wirkungsnachweis der Apparat-Abhilfen.
|
|
110
|
+
|
|
111
|
+
## 9. Migrationshinweis
|
|
112
|
+
|
|
113
|
+
**Keine.** Geändert sind zwei `SKILL.md` (Abschnitt 2 und Fehlerbehandlung), die
|
|
114
|
+
Kernquelle der Berechtigungsdatei (**ohne Änderung der gerenderten Regelmenge** – das
|
|
115
|
+
Feld `_uebererfasst` wird nicht abgebildet) und drei `TESTS.md` (kein Versionsheben,
|
|
116
|
+
D-119). **Die übernehmenden Projekte erhalten die beiden Skills mit ihrer neuen
|
|
117
|
+
Version**; `install.py --update` schreibt sie. Das Übungsrepositorium wird nach dem
|
|
118
|
+
Merge auf **0.79.0** gehoben.
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Änderungsantrag `CR-2026-109`
|
|
2
|
+
|
|
3
|
+
| Feld | Inhalt |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Titel | Der Aufräumer stirbt an seiner eigenen Erfolgsmeldung – und das Aufräumen hat ihn zum ersten Mal in der zweiten Kodierungsumgebung gefahren |
|
|
6
|
+
| Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
|
|
7
|
+
| Datum | 2026-09-20 |
|
|
8
|
+
| Betroffene Artefakte | `tests/erhebungen/baeume_loeschen.py`, `governance/DECISION_LOG.md` (**D-223** neu, `K-82` berichtigt), `docs/ROADMAP.md`, `CHANGELOG.md`, `VERSION`, `UEBERGABE.md` |
|
|
9
|
+
| Ebene laut Entscheidungsbaum 6 | **Core** – Gegenstand ist ein Skript unter `<CORE_DIR>/tests/` und die Berichtigung eines Klärungspunkts |
|
|
10
|
+
| Art | Berichtigung nach einem gemessenen Fehlschlag – **kein Kontingent, kein Lauf am Client** |
|
|
11
|
+
| Dringlichkeit | **Regulär**, unmittelbar nach `0.79.0` |
|
|
12
|
+
|
|
13
|
+
## 1. Anlass
|
|
14
|
+
|
|
15
|
+
Das Aufräumen nach dem Meßtag ist gefahren. `baeume_loeschen.py loeschen` hat getan,
|
|
16
|
+
was es soll – **46 Bäume gelöscht, achtunddreißig Verzeichnisverbindungen einzeln
|
|
17
|
+
gelöst, und der geteilte Bestand ist unberührt** (9798 Dateien / 101 089 283 Bytes vor
|
|
18
|
+
und nach dem Löschen, auf Datei und Byte gleich).
|
|
19
|
+
|
|
20
|
+
🔴 **Und danach ist es abgestürzt – an seiner letzten Zeile:**
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
node_modules nachher: 9798 Dateien / 101089283 Bytes
|
|
24
|
+
Traceback (most recent call last):
|
|
25
|
+
File "baeume_loeschen.py", line 78, in main
|
|
26
|
+
print("\U0001f7e2 geteilter Bestand unberuehrt")
|
|
27
|
+
UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f7e2'
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Das Skript hat **keine** Zeile `sys.stdout.reconfigure(encoding="utf-8")` und gibt in
|
|
31
|
+
seiner Erfolgsmeldung ein Emoji aus. In der Umgebung **ohne** `PYTHONIOENCODING=utf-8`
|
|
32
|
+
– also in der Standardumgebung dieses Arbeitsplatzes – kann es die Meldung nicht
|
|
33
|
+
schreiben.
|
|
34
|
+
|
|
35
|
+
## 2. Warum es bis hierher nicht aufgefallen ist
|
|
36
|
+
|
|
37
|
+
`baeume_loeschen.py` ist mit dem Meßtag entstanden (`0.78.2`-Nachlauf, Befund 6 des
|
|
38
|
+
ersten vollständigen Aufbaus) und **am Meßtag nur im Erfolgsfall mit gesetztem
|
|
39
|
+
`PYTHONIOENCODING` gefahren worden**. Der Aufräumlauf nach dem Merge von `0.79.0` war
|
|
40
|
+
der erste in der anderen Kodierungsumgebung.
|
|
41
|
+
|
|
42
|
+
➡️ **Das ist die Lehre von `0.67.0` an einem neuen Ort:** *Wer einen Lauf in zwei
|
|
43
|
+
Kodierungsumgebungen verlangt, prüft auch seinen **Berichtsweg** in beiden.* Der
|
|
44
|
+
Abnahmelauf des Prüfapparats fährt seit D-49 in beiden; **ein Werkzeug daneben fuhr nie
|
|
45
|
+
in beiden**, und mit `0.79.0` ist es in den Kern gewandert (D-222).
|
|
46
|
+
|
|
47
|
+
🟢 **Ausgezählt über alle siebzehn Skripte unter `tests/erhebungen/`: genau eines ist
|
|
48
|
+
betroffen.** Die übrigen sechzehn tragen entweder die Zeile oder geben ausschließlich
|
|
49
|
+
ASCII aus. Es ist das **jüngste** – und das einzige, das nie einen vollständigen
|
|
50
|
+
Durchgang in beiden Umgebungen hatte.
|
|
51
|
+
|
|
52
|
+
🟡 **Der Schaden war null:** Der Absturz kam **nach** der Gegenzählung und **nach**
|
|
53
|
+
dem Löschen.
|
|
54
|
+
|
|
55
|
+
🔴 **Die naheliegende Verschärfung lautete: *die Abbruchmeldung trägt dasselbe Zeichen
|
|
56
|
+
und stirbt beim nächsten Mal genauso.*** Zeile 75 ist
|
|
57
|
+
`raise SystemExit("🔴 ABBRUCH: der geteilte Bestand hat sich geaendert!")` – also
|
|
58
|
+
genau die Meldung, die kommt, wenn das Skript gerade 9798 Dateien des
|
|
59
|
+
Übungsrepositoriums mitgelöscht hat.
|
|
60
|
+
|
|
61
|
+
🟢 **Gemessen, und sie ist widerlegt.** Derselbe Text auf beiden Wegen, in beiden
|
|
62
|
+
Umgebungen:
|
|
63
|
+
|
|
64
|
+
| Weg | ohne `PYTHONIOENCODING` | mit `PYTHONIOENCODING=utf-8` |
|
|
65
|
+
|---|---|---|
|
|
66
|
+
| `print(…)` auf **stdout** | `UnicodeEncodeError`, exit 1 | Ampelzeile, exit 0 |
|
|
67
|
+
| `SystemExit(…)` auf **stderr** | `\U0001f534 ABBRUCH: …`, exit 1 – **die Meldung kommt an**, nur das Zeichen ist escapet | `🔴 ABBRUCH: …`, exit 1 |
|
|
68
|
+
|
|
69
|
+
➡️ **Python schreibt die `SystemExit`-Meldung mit `backslashreplace`, `print` mit
|
|
70
|
+
`strict`.** Der **wichtige** Bericht trägt, der harmlose nicht – die Verschärfung wäre
|
|
71
|
+
richtig geklungen und falsch gewesen. *Den eigenen Lösungsvorschlag gegenprüfen, nicht
|
|
72
|
+
nur den Befund.*
|
|
73
|
+
|
|
74
|
+
## 3. Vorlage zur Entscheidung
|
|
75
|
+
|
|
76
|
+
| # | Frage | Auflösung | Preis |
|
|
77
|
+
|---|---|---|---|
|
|
78
|
+
| **E1** | **Bekommt das Skript die Zeile, oder verliert es das Emoji?** | **Die Zeile.** `sys.stdout.reconfigure(encoding="utf-8")` steht in allen sechzehn anderen Skripten dieses Verzeichnisses und ist die Form, die dieses Projekt führt | **Verworfen: das Emoji streichen.** Dann wäre genau dieses Skript stumm, wo die übrigen sechzehn eine Ampel führen – und die nächste Nicht-ASCII-Ausgabe brächte den Absturz zurück. **Der Fehler ist nicht das Zeichen, sondern der fehlende Berichtsweg.** Gegenprobe zur Auswahl: Die Zeile behebt **jede** künftige Nicht-ASCII-Ausgabe des Skripts, das Streichen nur diese eine |
|
|
79
|
+
| **E2** | **Bekommen die übrigen sechzehn Skripte einen Wächter?** | **Nein – die Auszählung genügt, und sie steht im Protokoll dieses Antrags.** Sechzehn von siebzehn tragen die Zeile oder geben nur ASCII aus | Ein Wächter im Validator hätte hier **null** Gegenstand nach der Behebung, und das allein ist kein Grund gegen ihn (Prüfung 65 und 68 sind so gebaut). 🔴 **Der Grund ist ein anderer:** Ein Skript **ohne** Nicht-ASCII-Ausgabe braucht die Zeile nicht, und ein Zähler, der sie trotzdem verlangt, wäre *eine Bedingung, die mehr verlangt als ihr Kriterium fordert*. Ein Zähler, der die Ausgabe **analysiert**, müßte jeden `print`-Ausdruck auswerten – er prüfte die Schreibweise, nicht die Sache. **Preis, benannt:** Das nächste neue Skript kann denselben Fehler machen; was ihn fängt, ist der Durchgang in beiden Umgebungen, und der steht in der README dieses Verzeichnisses |
|
|
80
|
+
| **E3** | **Wie wird `K-82` berichtigt – die Bäume stehen nicht mehr?** | **Berichtigen, mit ausgewiesenem Grund.** `K-82` sagte *„die Bäume stehen noch"*; sie sind seit dem Aufräumlauf gelöscht, und die dritte Frage des Klärungspunkts (bestehende oder frische Bäume?) **entfällt damit** | 🔴 **Die Reihenfolge war falsch:** Die Übergabe von `0.79.0` ist **vor** dem Aufräumen geschrieben worden und hat einen Zustand behauptet, den das Aufräumen eine Viertelstunde später aufgehoben hat. **Das ist D-216 in der Sache, nicht in der Form:** Die Übergabe stand richtig im Release-Commit – aber ein Vorgang **nach** dem Merge hat ihre Aussage überholt. ➡️ **Wer eine Aufräumaufgabe hat, führt sie VOR der Übergabe aus, die den Zustand danach beschreibt.** **Verworfen: eine bloße Nachtragszeile** – *wer die Stelle liest und den Nachtrag nicht, übernimmt den Zustand* |
|
|
81
|
+
|
|
82
|
+
## 4. Entscheidung
|
|
83
|
+
|
|
84
|
+
**E1 bis E3 wie vorgelegt entschieden** (`<FRAMEWORK_OWNER>`, 2026-09-20). Decision
|
|
85
|
+
Record **D-223**; `K-82` berichtigt. **Kriterium 2 unverändert 30** – keine Zelle wird
|
|
86
|
+
angefaßt.
|
|
87
|
+
|
|
88
|
+
## 5. Abnahme
|
|
89
|
+
|
|
90
|
+
- `validate-framework.py --root .`: **0 Fehler, 0 Warnungen**.
|
|
91
|
+
- `probe-pruefungen.py .` in **beiden** Kodierungsumgebungen, voller Lauf.
|
|
92
|
+
- **Der eigentliche Nachweis steht außerhalb des Validators, und er ist ein Paar am
|
|
93
|
+
selben Gegenstand.** Eine Probebasis mit einem Wegwerfbaum, `loeschen` **ohne**
|
|
94
|
+
`PYTHONIOENCODING`:
|
|
95
|
+
|
|
96
|
+
| Stand | Ergebnis |
|
|
97
|
+
|---|---|
|
|
98
|
+
| **Vorstand** (unberührte Fassung, nur der Basispfad umgehängt) | `UnicodeEncodeError: 'charmap' codec can't encode character '\U0001f7e2'`, **exit 1** |
|
|
99
|
+
| **behobener Stand** | vier Ausgabezeilen samt Ampel, **exit 0**, Gegenzählung 9798 / 101 089 283 unverändert |
|
|
100
|
+
|
|
101
|
+
🔴 **`zaehlen` taugt als Gegenprobe NICHT** – der Zweig kehrt vor der Ampelzeile
|
|
102
|
+
zurück. Die erste Fassung dieses Abschnitts hat ihn vorgeschlagen; *eine Gegenprobe,
|
|
103
|
+
die den Gegenstand nicht erreicht, besteht immer.*
|
|
104
|
+
- **Auszählung über alle siebzehn Skripte:** eines betroffen, sechzehn nicht.
|
|
105
|
+
|
|
106
|
+
## 6. Migrationshinweis
|
|
107
|
+
|
|
108
|
+
**Keine.** `tests/erhebungen/` wird von `install.py` in kein Projekt geschrieben.
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Änderungsantrag `CR-2026-110`
|
|
2
|
+
|
|
3
|
+
| Feld | Inhalt |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Titel | Der Vorbedingungsdurchgang des Nachlaufs – der Meßapparat schrieb ins Repositorium, drei Wächter hatten drei Sollwerte, und eine normative Kernregel war seit acht Releases nicht gelesen worden |
|
|
6
|
+
| Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
|
|
7
|
+
| Datum | 2026-09-20 |
|
|
8
|
+
| Betroffene Artefakte | `tests/erhebungen/` (`ablage.py` **neu**, elf Skripte geändert), `tests/scripts/validate-framework.py` (**Prüfung 69**), `tests/scripts/probe-pruefungen.py` (vier Einheiten), `tests/TEST_CATALOG.md`, `governance/DECISION_LOG.md` (**D-224** bis **D-228** neu, `K-83` entschieden, `K-84` neu, `K-82` berichtigt), `framework/skills/fw-review-support/TESTS.md` und `fw-mr-description/TESTS.md` (je eine Ergebniszelle **geöffnet**, kein Versionsheben – D-119), `onboarding/exercises/README.md` (`UEB-29` gebaut), `tests/protocols/2026-09-20-vorbedingungen-nachlauf-b4.md` (neu), `docs/ROADMAP.md`, `CHANGELOG.md`, `VERSION`, `UEBERGABE.md` |
|
|
9
|
+
| Ebene laut Entscheidungsbaum 6 | **Core** – Gegenstand sind der Prüfapparat, der Meßapparat und zwei Ergebniszellen |
|
|
10
|
+
| Art | Vorbedingungsdurchgang vor einem bezahlten Meßtag – **kein Kontingent, kein Lauf am Client** |
|
|
11
|
+
| Dringlichkeit | **Regulär**, unmittelbar vor dem Nachlauf (`K-82`) |
|
|
12
|
+
|
|
13
|
+
## 1. Anlass
|
|
14
|
+
|
|
15
|
+
Der Nachlauf von Bündel 4 ist der nächste Schritt und der erste Posten seit dem Meßtag,
|
|
16
|
+
der wieder Kontingent kostet. **Bei den letzten neunzehn Durchgängen in Folge fiel der
|
|
17
|
+
billigste Befund vor dem ersten Lauf.** Dieser Durchgang hat **sieben** ergeben, und
|
|
18
|
+
keiner von ihnen hat etwas gekostet.
|
|
19
|
+
|
|
20
|
+
### 🔴 Befund 1: Der Meßapparat schreibt seit D-222 ins Repositorium
|
|
21
|
+
|
|
22
|
+
D-222 hat die Skripte mit `0.79.0` in den Kern geholt und ihre Belege ausdrücklich
|
|
23
|
+
draußen gelassen. **Fünf Skripte legten ihre Belege aber neben sich ab:**
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
BELEGE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "belege")
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Solange sie daneben lagen, war das richtig. **Seit dem Umzug zeigt derselbe Ausdruck
|
|
30
|
+
hinein** – dazu zwei Skripte für die Prompts (`<CORE_DIR>/tests/prompts/`) und zwei für
|
|
31
|
+
die Zustandsaufnahmen. `lauf.py` legt das Verzeichnis selbst an, ohne zu fragen.
|
|
32
|
+
|
|
33
|
+
Der Nachlauf hätte **44 Belegdateien samt Sitzungsmitschriften mit Werkzeugeingaben**
|
|
34
|
+
versioniert – genau das, was D-222 vier Wochen zuvor verworfen hat, und **ohne daß
|
|
35
|
+
jemand es entschieden hätte.**
|
|
36
|
+
|
|
37
|
+
> *Wer einen Apparat umzieht, zieht seine relativen Pfade mit um – oder er verschiebt
|
|
38
|
+
> ihr Ziel, ohne es zu merken.*
|
|
39
|
+
|
|
40
|
+
### 🔴 Befund 2: Drei Wächter derselben Vorbedingung, drei Sollwerte, keiner stimmte
|
|
41
|
+
|
|
42
|
+
| Skript | Sollwert im Quelltext |
|
|
43
|
+
|---|---|
|
|
44
|
+
| `umgebungen-bauen-b4.py` | `0.78.0` |
|
|
45
|
+
| `baeume-b4.py` | `0.78.0` |
|
|
46
|
+
| `historie-bauen-b4.py` | `0.77.0` |
|
|
47
|
+
|
|
48
|
+
**Das Übungsrepositorium stand auf `0.78.2`, der Kern auf `0.79.1`.** Die beiden
|
|
49
|
+
Wächter im normalen Pfad hätten abgebrochen – richtig, aber gegen den falschen
|
|
50
|
+
Sollwert. Der dritte wäre nie befragt worden, weil `baeume-b4.py` seinen Wert
|
|
51
|
+
durchreicht: **ein Sollwert, der nur in einer unbenutzten Voreinstellung steht, ist
|
|
52
|
+
eine Falle für den nächsten, der das Skript einzeln aufruft.**
|
|
53
|
+
|
|
54
|
+
### 🔴 Befund 3: `K-83` war längst entschieden – das Werkzeug kannte es nur im Kommentar
|
|
55
|
+
|
|
56
|
+
D-120 schließt mit dem Satz *„Für Fund-Testfälle bleibt die erste Form nach D-116 die
|
|
57
|
+
einzige zulässige."* `auswerten-b4.py` führte die Unterscheidung in seinem
|
|
58
|
+
Kopfkommentar und druckte `W` und `T` für alle neunzehn Zellen gleich. Der gemessene
|
|
59
|
+
Fall (`SK-012-P01`: Probe grün, keine der beiden Dateien geöffnet) ist damit **kein
|
|
60
|
+
Grund für eine Ausnahmemenge**, sondern der Beleg, daß eine entschiedene Regel nicht im
|
|
61
|
+
Code stand.
|
|
62
|
+
|
|
63
|
+
### 🔴 Befund 4: Eine Versionsänderung öffnet die Zellen ihres Testblatts
|
|
64
|
+
|
|
65
|
+
`08-skill-conventions.md` Abschnitt 7, normativ: *„Jede Versionsänderung erfordert die
|
|
66
|
+
erneute Ausführung der Testfälle in `TESTS.md`."*
|
|
67
|
+
|
|
68
|
+
**`0.79.0` hat `fw-review-support` auf `0.1.6` und `fw-mr-description` auf `0.1.5`
|
|
69
|
+
gehoben – in demselben Commit, der `SK-010-P02` und `SK-012-N04` abgenommen hat.** Die
|
|
70
|
+
Läufe fanden gegen `0.1.5` und `0.1.4` statt.
|
|
71
|
+
|
|
72
|
+
🔴 **Und der Befund reicht weiter als Bündel 4.** Gemessen gegen die Git-Historie in
|
|
73
|
+
**Commit**-Auflösung – die Tagesauflösung trennt ihn nicht, weil Lauf und Anhebung in
|
|
74
|
+
demselben Release liegen:
|
|
75
|
+
|
|
76
|
+
| Lage | Skills | bestandene Zellen |
|
|
77
|
+
|---|---|---|
|
|
78
|
+
| Version **nach** dem Protokoll gehoben | `fw-repo-analyze`, `fw-tests` | 11 |
|
|
79
|
+
| Version im **selben Commit** wie das Protokoll | `fw-bugfix-prepare`, `fw-change-analyze`, `fw-code-explain`, `fw-plan`, `fw-mr-description`, `fw-review-support` | 24 |
|
|
80
|
+
| Version **vor** der Messung (in Ordnung) | `fw-change-small`, `fw-docs-update`, `fw-error-analyze`, `fw-refactor`, `fw-tests`¹ | – |
|
|
81
|
+
|
|
82
|
+
¹ `fw-tests` erscheint in zwei Zeilen, weil seine bestandenen Zellen auf mehrere
|
|
83
|
+
Protokolle verweisen; gewertet ist die schärfere Lage.
|
|
84
|
+
|
|
85
|
+
**Acht von dreizehn Skills, zusammen 35 bestandene Zellen.** Wörtlich angewandt ginge
|
|
86
|
+
Kriterium 2 nicht auf 32, sondern auf rund **63**.
|
|
87
|
+
|
|
88
|
+
🔴 **Die Bauform sieht jedesmal wie Sorgfalt aus:** Ein Meßtag findet einen Mangel am
|
|
89
|
+
Skill, das Release behebt ihn und hebt die Version – und macht damit die Abnahme
|
|
90
|
+
ungültig, die es im selben Zug einträgt. **D-119 hat genau diesen Kreis für die
|
|
91
|
+
Gegenrichtung schon benannt** und ihn nur für das *Eintragen* aufgelöst, nicht für das
|
|
92
|
+
*Beheben*.
|
|
93
|
+
|
|
94
|
+
### 🔴 Befund 5: Die Berührungsprobe von `SK-010-N04` verlangt, was D-219 verboten hat
|
|
95
|
+
|
|
96
|
+
Ihre beiden Marken waren die Namen der zwei Übungs-Branches. **Seit `0.79.0` darf der
|
|
97
|
+
Skill Branchnamen nicht auflisten** – die Berechtigungsdatei sperrt jede Form von `git
|
|
98
|
+
branch` über ein Präfix. Eine Probe, die verlangt, was die geprüfte Schranke verbietet,
|
|
99
|
+
kann nur rot sein.
|
|
100
|
+
|
|
101
|
+
### 🔴 Befund 6: Die Zahlen von `K-82` stimmten nicht
|
|
102
|
+
|
|
103
|
+
| Angabe in `K-82` | gemessen am 2026-09-20 |
|
|
104
|
+
|---|---|
|
|
105
|
+
| Kriterium 2 steht bei **31** | `zaehlen46.py`: **30** |
|
|
106
|
+
| **sieben** abgenommene Zellen | **acht** (sechs `SK-011`, dazu `SK-010-P02` und `SK-012-N04`) |
|
|
107
|
+
| **zwölf** ungemessene Zellen | **elf** |
|
|
108
|
+
| **24 Läufe** – *„zehn Zellen …, zwei davon mit zweitem Turn"* | **keine** der elf gehört zu `fw-docs-update`, und nur dieser Skill schreibt: **keine hat einen zweiten Turn**; 11 × 2 = **22** |
|
|
109
|
+
|
|
110
|
+
### 🔴 Befund 7: Zwei Zähler desselben Bestands sagten Verschiedenes
|
|
111
|
+
|
|
112
|
+
Gefunden beim **Trockenlauf des Apparats**, der zu diesem Durchgang gehört. Die
|
|
113
|
+
Gegenzählung von `baeume_loeschen.py` meldete
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
node_modules vorher: 9798 Dateien / 101089284 Bytes
|
|
117
|
+
node_modules nachher: 9798 Dateien / 101089284 Bytes
|
|
118
|
+
🟢 geteilter Bestand unberuehrt
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
– **ein Byte mehr** als die 101 089 283, die `0.79.1` und die Übergabe als *den*
|
|
122
|
+
Bestand führen. Verursacher: `node_modules/.vite/vitest/results.json`. **Das
|
|
123
|
+
Prüfmittel schreibt in den geteilten Bestand**, und `umgebungen-bauen-b4.py` fährt es
|
|
124
|
+
vor jedem Meßtag im Meßbaum.
|
|
125
|
+
|
|
126
|
+
🔴 **`node-waechter.py` kennt das seit seinem Bau** und weist `.vite`, `.cache` und
|
|
127
|
+
`.tmp` gesondert aus; `baeume_loeschen.py` zählte roh. **Der Beleg des Aufräumens hing
|
|
128
|
+
am unschärferen der beiden Zähler.**
|
|
129
|
+
|
|
130
|
+
🔴 **Und am Meßtag hätte der Wächter angeschlagen, wo nichts geschehen ist:**
|
|
131
|
+
`<TEST_COMMAND>` steht im `allow`-Korb des Meßbaums, also darf **jeder** Lauf das
|
|
132
|
+
Prüfmittel starten – und zwischen *vorher* und *nachher* von `node-waechter.py` liegt
|
|
133
|
+
die ganze Meßreihe.
|
|
134
|
+
|
|
135
|
+
> ➡️ *Ein Wächter über einen geteilten Bestand muß wissen, wer außer dem Prüfling noch
|
|
136
|
+
> hineinschreibt.*
|
|
137
|
+
|
|
138
|
+
## 2. Was gemessen wurde, bevor entschieden wurde
|
|
139
|
+
|
|
140
|
+
- **Trockenlauf des Hebens** an einer Kopie des Übungsrepositoriums mit dem
|
|
141
|
+
`leitwerk-core` von `HEAD`: `install.py --update --dry-run` meldet **0 angelegt, 7
|
|
142
|
+
aktualisiert, 57 unverändert, 20 Projektdateien behalten** – die sieben sind
|
|
143
|
+
ausschließlich die Träger der drei gemessenen Skills. `--strict-overlay` danach:
|
|
144
|
+
**genau ein** Fehler, die kompatible Framework-Version.
|
|
145
|
+
- **Wirkungsnachweis zu D-224 als Paar:** `LW_ERHEBUNG` auf
|
|
146
|
+
`…/leitwerk-core/tests/erhebungen/belege` → Abbruch mit Begründung; auf das
|
|
147
|
+
Geschwisterverzeichnis `…/leitwerk-erhebungen-2026-09-20-b4n` → Ablage aufgelöst.
|
|
148
|
+
**Der zweite Fall ist der eigentliche:** Ein Präfixvergleich auf der Zeichenkette
|
|
149
|
+
hätte ihn als Kind von `…/leitwerk` gelesen.
|
|
150
|
+
- **Wirkungsnachweis zu D-226 an den 50 Belegen des Meßtags, ohne einen neuen Lauf:**
|
|
151
|
+
Die Probe meldet den Hauptlauf von `SK-012-P01` rot, dazu zehn der zwölf ungemessenen
|
|
152
|
+
Zellen. *Sie hätte D-218 aus den Belegen abgelesen.* **Sieben der acht abgenommenen
|
|
153
|
+
Zellen bleiben grün**; die achte ist `SK-012-N04`, die nach D-227 ohnehin nachfährt.
|
|
154
|
+
- **Die drei Sonden und die Gegenprobe zu Prüfung 69** laufen (`69a` bis `69c`, `69a`).
|
|
155
|
+
- **Wirkungsnachweis zu D-228 als Paar am selben Gegenstand:** Vorstand `9798 Dateien / 101 089 284 Bytes` (wandert mit jedem Testlauf), behobener Stand `9797 Dateien / 101 088 634 Bytes, dazu 1 Zwischenstandsdatei` – stabil, und der Zwischenstand steht daneben statt darin.
|
|
156
|
+
|
|
157
|
+
## 3. Vorlage zur Entscheidung
|
|
158
|
+
|
|
159
|
+
| # | Frage | Auflösung | Preis |
|
|
160
|
+
|---|---|---|---|
|
|
161
|
+
| **E1** | **Wohin schreibt ein Meßapparat, der im Repositorium liegt?** | **Daneben, und der Ort wird gesagt:** `LW_ERHEBUNG`. Ohne die Angabe bricht jedes Skript ab, das eine Belegablage braucht; ein Pfad **im** Repositorium wird abgewiesen. **Prüfung 69** meldet jede Datei, die dort dennoch liegt | **Verworfen: ein Standardwert im Quelltext** – *eine Zahl, die gepflegt werden muß, wird nicht gepflegt* (D-153), und die drei `--erwarte`-Werte desselben Apparats haben es im selben Durchgang vorgeführt. **Verworfen: nur die Prüfung ohne den Wächter** – sie sieht erst, was schon geschrieben **ist**; die zweite Hälfte gehört davor, dieselbe Aufteilung wie bei D-205 zwischen Schnitt und Wächter. **Preis, benannt:** Jeder Aufruf braucht die Umgebungsvariable, und wer sie vergißt, bekommt einen Abbruch statt eines Laufs |
|
|
162
|
+
| **E2** | **Wird der Sollwert der Vorbedingung gepflegt oder abgeleitet?** | **Abgeleitet:** Sollstand ist die Version **dieses** Kerns (`ablage.kernversion()`). `--erwarte` bleibt als Übersteuerung | **Verworfen: die drei Werte gleichzuziehen** – dieselbe Pflege mit einem Zwischenschritt mehr, und sie lag an drei von drei Stellen daneben. **Verworfen: den Wert aus dem Übungsrepositorium nehmen** – dann prüfte der Wächter den Meßbaum gegen sich selbst (*die Null durch Konstruktion*, 0.59.1). 🟢 **Nebenwirkung, gewollt:** Der abgeleitete Wert beantwortet die erste Frage jedes Vorbedingungsdurchgangs – *hat ein Release den Gegenstand der Messung angefaßt?* – von selbst |
|
|
163
|
+
| **E3** | **Bekommt die Textform der Berührungsprobe eine Ausnahmemenge (`K-83`)?** | **Nein.** D-120 hat die Frage entschieden; die Gattung steht jetzt **je Marke** im Code, und das Urteil steht **je Lauf**. `K-83` Frage (3) entfällt damit | **Verworfen: die Ausnahmemenge** – sie bräuchte eine Antwort darauf, wer die übergebenen Grundlagen zählt (der Prompt ist maschinenlesbar, die genannten Dokumente sind es nicht), und sie ersetzte eine entschiedene Regel durch eine Heuristik. **Verworfen: die Gattung je Zelle** – `SK-010-N02` trägt beide in einer Zelle. 🔴 **Und die Umstellung hat sofort ihren eigenen zweiten Befund geliefert:** Je Turn geurteilt wäre `SK-011-N03` rot, weil der erste Turn `Generator` nennt und der zweite nicht – **eine abgenommene Zelle, ohne daß ein Lauf etwas versäumt hätte** (dritter Teil von D-218 an neuer Stelle) |
|
|
164
|
+
| **E4** | **Was folgt aus der Versionsnorm für die beiden abgenommenen Zellen?** | **Die Norm gilt wörtlich:** `SK-010-P02` und `SK-012-N04` gehen auf `offen` und fahren im Nachlauf mit. **Kriterium 2: 30 → 32.** Die Reichweite über Bündel 4 hinaus wird **nicht** hier entschieden, sondern als `K-84` geführt | **Verworfen: eine Ausnahme im Einzelfall** mit dem Diff als Beleg (der Diff berührt genau drei Stellen, und keine ist der Gegenstand der beiden Zellen) – dann ruhte eine Abnahme auf einer Auslegung, und die Norm bliebe unverändert daneben stehen. **Verworfen: die Norm zu präzisieren** – das ist die allgemeine Form derselben Auslegung, sie trifft **acht von dreizehn** Skills, und eine normative Kernregel wird nicht nebenbei in einem Vorbedingungsdurchgang geändert. **Preis, benannt:** vier zusätzliche Läufe, rund 4,90 USD – und **der erste Aufwärtsschritt in einer neun Schritte langen monotonen Kette.** ⚠️ *Ein Zähler, der nur fallen kann, sagt nichts darüber, ob seine Nullen noch gelten* |
|
|
165
|
+
| **E5** | **Wird `UEB-29` vor dem Nachlauf gebaut (`K-82` Frage 1)?** | **Ja.** Quelle `tools/praeparationen/ueb29-meldedienst.ts` im Übungsrepositorium, Ziel `frontend/src/api/meldedienst.ts`, je Meßbaum gesetzt; `historie-bauen-b4.py` bricht ab, wenn die Quelle fehlt **oder** wenn sie sich selbst als synthetisch ausweist | **Verworfen: ohne ihn zu fahren** – `SK-010-N02` liefe ein zweites Mal ohne Gegenstand für seine zweite Hälfte, und das Ergebnis stünde vorher fest. **Verworfen: ein Modul, das schon eine fremde Präparation trägt** (D-137): `books.ts` führt den Wartungshinweis für Assistenzwerkzeuge, ein Lauf träfe beides. Deshalb eine eigene Datei. **Preis, benannt:** eine weitere Datei im Übungsrepositorium, die nur eine Zelle braucht |
|
|
166
|
+
| **E6** | **Bekommen die drei Zellen aus D-221 den Zuschnitt `konf` (`K-82` Frage 2)?** | **Ja, und zwar drei statt zwei:** `SK-012-P02`, `SK-011-N04` und `SK-010-P02`. Die Klasse liegt seit `0.77.0` fertig im Apparat | 🟢 **`SK-012-P02` und `SK-010-P02` kosten nichts** – beide fahren ohnehin. **`SK-011-N04` kostet zwei Läufe** (nur der Kontrollauf, und `fw-docs-update` hat zwei Turns); ihr Hauptlauf vom Meßtag bleibt gültig, weil dieser Skill als einziger der drei **nicht** gehoben worden ist. 🔴 **Bei `SK-010-P02` bleibt der `risiko`-Kontrollauf vom 2026-09-20 als Beleg der ERSTEN Hälfte stehen** (Mindesttiefe), der Nachlauf liefert `konf` für die zweite (Fundstellen-Treue). **Preis, benannt:** Die erste Hälfte ist gegen Skillfassung `0.1.5` geschnitten, die zweite gegen `0.1.6` |
|
|
167
|
+
|
|
168
|
+
| **E7** | **Der geteilte `node_modules`-Bestand hat sich um ein Byte geändert – ist das ein Schreibzugriff?** | **Nein, und die beiden Zähler werden gleichgezogen.** `node_modules/.vite/vitest/results.json` gehört dem **Prüfmittel**, und `umgebungen-bauen-b4.py` fährt es vor jedem Meßtag. `node-waechter.py` weist solche Pfade seit seinem Bau gesondert aus; `baeume_loeschen.py` tut es ab sofort auch | 🔴 **Gefunden beim Trockenlauf des Apparats:** 101 089 284 Bytes gegen die 101 089 283 aus `0.79.1`. **Zwei Zähler desselben Gegenstands sagten Verschiedenes**, und der Beleg des Aufräumens hing am unschärferen. 🔴 **Der Wächter hätte am Meßtag angeschlagen, wo nichts geschehen ist:** `<TEST_COMMAND>` steht im `allow`-Korb, also darf jeder Lauf das Prüfmittel starten. **Verworfen: den Zwischenstand mitzuzählen** (eine Zahl, die jeder Testlauf verschiebt, taugt nicht als Beleg); **verworfen: `.vite` vor jedem Lauf zu löschen** (dann mißt der erste Lauf kalt und jeder folgende warm). **Preis, benannt:** Ein Schreibzugriff innerhalb von `.vite` bliebe unbemerkt – der Pfad steht in `<EXCLUDED_PATHS>` und im `deny`-Korb |
|
|
169
|
+
|
|
170
|
+
## 4. Entscheidung
|
|
171
|
+
|
|
172
|
+
**E1 bis E7 wie vorgelegt entschieden** (`<FRAMEWORK_OWNER>`, 2026-09-20). Decision
|
|
173
|
+
Records **D-224** bis **D-228**; `K-83` entschieden, **`K-84` neu**, `K-82` berichtigt
|
|
174
|
+
und seine drei Fragen beantwortet. **Kriterium 2: 30 → 32** – zwei Zellen werden
|
|
175
|
+
geöffnet, keine geschlossen.
|
|
176
|
+
|
|
177
|
+
## 5. Abnahme
|
|
178
|
+
|
|
179
|
+
- `validate-framework.py --root .`: **0 Fehler, 0 Warnungen**.
|
|
180
|
+
- `probe-pruefungen.py`: voller Lauf, alle Sonden und Gegenproben bestanden – darunter
|
|
181
|
+
die vier neuen Einheiten zu Prüfung 69.
|
|
182
|
+
- `zaehlen46.py`: **Katalog 4 | Testblätter 28 | Summe 32**.
|
|
183
|
+
- Protokoll: `leitwerk-core/tests/protocols/2026-09-20-vorbedingungen-nachlauf-b4.md`.
|
|
184
|
+
- **Kein Lauf am Client, kein Kontingent verbraucht.**
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Änderungsantrag `CR-2026-111`
|
|
2
|
+
|
|
3
|
+
| Feld | Inhalt |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Titel | Der Apparat lag tot auf dem Weg der Wiederaufnahme – Befehl 1 von 4 startete nicht, und Befehl 4 hätte keinen einzigen Lauf gefahren |
|
|
6
|
+
| Antragstellende Rolle | `<FRAMEWORK_OWNER>` |
|
|
7
|
+
| Datum | 2026-09-21 |
|
|
8
|
+
| Betroffene Artefakte | `tests/erhebungen/stand-b4.py`, `reihe-b4.py`, `ablage.py` (`sollmenge()`, `laeufe()` **neu**), `tests/scripts/validate-framework.py` (**Prüfung 70**), `tests/scripts/probe-pruefungen.py` (fünf Einheiten), `tests/TEST_CATALOG.md`, `tests/erhebungen/README.md`, `governance/DECISION_LOG.md` (**D-229**, **D-230** neu), `tests/protocols/2026-09-21-wiederaufnahme-nachlauf-b4.md` (neu), `docs/ROADMAP.md`, `CHANGELOG.md`, `VERSION`, `UEBERGABE.md` |
|
|
9
|
+
| Ebene laut Entscheidungsbaum 6 | **Core** – Gegenstand sind der Meßapparat und der Prüfapparat |
|
|
10
|
+
| Art | Befunde auf dem Weg der Wiederaufnahme – **kein Kontingent, kein Lauf am Client** |
|
|
11
|
+
| Dringlichkeit | **Regulär**, unmittelbar vor der Wiederaufnahme des Nachlaufs |
|
|
12
|
+
|
|
13
|
+
## 1. Anlass
|
|
14
|
+
|
|
15
|
+
Der Nachlauf von Bündel 4 ist am 2026-09-20 mitten zwischen Haupt- und Kontrolläufen
|
|
16
|
+
abgebrochen, weil das Wochenkontingent ausging. Der Wiederaufnahmepunkt
|
|
17
|
+
(`WIEDERAUFNAHME.md`) nennt **vier Befehle**. Am 2026-09-21 hat sich vor dem ersten
|
|
18
|
+
bezahlten Kontrollauf gezeigt: **zwei davon tragen nicht.**
|
|
19
|
+
|
|
20
|
+
**Beide Befunde kosteten nichts, weil sie vor dem Lauf kamen.** Damit fiel bei den
|
|
21
|
+
letzten **zwanzig** Durchgängen in Folge der billigste Befund vor dem ersten Lauf.
|
|
22
|
+
|
|
23
|
+
### 🔴 Befund 1: Befehl 1 von 4 startete seit `0.79.0` nicht
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
python leitwerk-core\tests\erhebungen\stand-b4.py
|
|
27
|
+
→ NameError: name 'S' is not defined
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Das Skript, dessen Kopfkommentar sagt *„EINE ZAHL IN EINER UEBERGABE IST EINE
|
|
31
|
+
MOMENTAUFNAHME, dieses Skript ist der Stand"*, bricht **beim Import** ab:
|
|
32
|
+
|
|
33
|
+
```python
|
|
34
|
+
PROMPTS = os.path.join(os.path.dirname(S), "prompts")
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**`S` trug bis D-222 den Ablageort neben dem Skript.** Der Umzug in den Kern hat den
|
|
38
|
+
Namen entfernt und **zwei** Lesestellen stehen lassen – eine im Modulrumpf, eine in
|
|
39
|
+
`main()`. Seit `0.79.0` war das Werkzeug tot, und der Tag seiner Wiederaufnahme war der
|
|
40
|
+
Tag, an dem es auffiel.
|
|
41
|
+
|
|
42
|
+
> *Ein Werkzeug, das niemand fährt, verfällt lautlos – und der Tag, an dem es gebraucht
|
|
43
|
+
> wird, ist der Tag, an dem es fehlt.*
|
|
44
|
+
|
|
45
|
+
🔴 **Und das ist der eigentliche Befund: keine der 69 Prüfungen konnte es sehen.**
|
|
46
|
+
|
|
47
|
+
| Prüfung | Was sie über den Apparat sagt |
|
|
48
|
+
|---|---|
|
|
49
|
+
| **45** | unter `leitwerk-core/` ist **kein Bytecode** versioniert – die **Abwesenheit** einer Datei |
|
|
50
|
+
| **69** | in der Erhebungsablage liegen nur `.py` und `.md` – die **Art** der Dateien |
|
|
51
|
+
| *keine* | ob eines dieser `.py` **läuft** |
|
|
52
|
+
|
|
53
|
+
Der Apparat hatte zwei Wächter über seinen **Ablageort** und keinen einzigen darüber,
|
|
54
|
+
ob seine Werkzeuge **starten**.
|
|
55
|
+
|
|
56
|
+
### 🔴 Befund 2: Der nächste Befehl hätte keinen einzigen Lauf gefahren
|
|
57
|
+
|
|
58
|
+
`stand-b4.py` schließt mit `NAECHSTER BEFEHL: python reihe-b4.py`. Genau dieser Aufruf
|
|
59
|
+
**ohne Argumente** bricht ab:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
ABBRUCH: der Baum C:\lw-b4\sk011n01 fehlt - erst baeume-b4.py
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Der Nachlauf mißt **vierzehn Zellen / 28 Läufe**. Sein Promptverzeichnis trägt die
|
|
66
|
+
**fünfzig** Prompts des Meßtags, weil `prompts-schreiben-b4.py` alle schreibt und keine
|
|
67
|
+
Zelle kennt. Beide Skripte leiteten ihre Sollmenge **aus diesem Verzeichnis** ab:
|
|
68
|
+
|
|
69
|
+
| | gemeldet | fällig |
|
|
70
|
+
|---|---|---|
|
|
71
|
+
| `stand-b4.py`: Sollmenge | **50 Läufe / 19 Zellen** | 28 Läufe / 14 Zellen |
|
|
72
|
+
| `stand-b4.py`: Fehlbestand | **35** | 15 |
|
|
73
|
+
| `stand-b4.py`: Restkosten | **rund 37 USD** | rund 18 USD |
|
|
74
|
+
| `reihe-b4.py` ohne Argumente | **Abbruch, 0 Läufe** | 15 Läufe |
|
|
75
|
+
|
|
76
|
+
🔴 **Gerettet hat den Nachlauf allein die Kennungsliste im Wiederaufnahmepunkt – und
|
|
77
|
+
sie weist sich selbst als *„Vorsicht, keine Pflicht"* aus.** Wer dem Apparat gefolgt
|
|
78
|
+
wäre statt der Liste, hätte einen Abbruch bekommen; wer der Zahl gefolgt wäre, hätte
|
|
79
|
+
das Doppelte veranschlagt.
|
|
80
|
+
|
|
81
|
+
> *Ein Verzeichnis ist kein Zuschnitt. Es ist der Zuschnitt von gestern.*
|
|
82
|
+
|
|
83
|
+
Das ist dieselbe Bauform wie D-224 (`LW_ERHEBUNG`) und D-218 (`--ziel`), eine Ebene
|
|
84
|
+
weiter: **Ein Ort, der aus der Umgebung erschlossen wird, gehört dem, der ihn zuletzt
|
|
85
|
+
gefüllt hat.**
|
|
86
|
+
|
|
87
|
+
## 2. Was gemessen wurde, bevor entschieden wurde
|
|
88
|
+
|
|
89
|
+
- **Der Defekt selbst, an beiden Stellen:** `stand-b4.py` bricht zuerst im Modulrumpf
|
|
90
|
+
ab; nach der ersten Berichtigung bricht es in `main()` erneut ab. **Ein Wächter, der
|
|
91
|
+
nur die erste Fundstelle meldet, hätte hier zweimal gebraucht werden müssen.**
|
|
92
|
+
- **Die neue Prüfung gegen den gesamten Kern, vor der Berichtigung:** **ein** Befund
|
|
93
|
+
(`stand-b4.py`, zwei Fundstellen), sonst nichts – aus **zwanzig** `.py`-Dateien.
|
|
94
|
+
Zwölf davon nennen Modulglobale wie `__file__`; sie laufen, und die Prüfung schweigt
|
|
95
|
+
über sie. *Ein Wächter, der bei jedem Lauf meldet, wird abgeschaltet.*
|
|
96
|
+
- **Die berichtigte Sollmenge gegen den Zuschnitt der Erhebung:** `stand-b4.py` meldet
|
|
97
|
+
jetzt **28 Läufe, 14 Zellen, 1 davon mit zweitem Turn** – Zahl für Zahl das, was die
|
|
98
|
+
README dieser Erhebung als ihren Gegenstand nennt, und **13 von 28 gültig** zum
|
|
99
|
+
Zeitpunkt der Wiederaufnahme, wie es der Wiederaufnahmepunkt sagt. Die elf Prompts
|
|
100
|
+
ohne Meßbaum stehen ab sofort **namentlich** unter *„Nicht im Zuschnitt dieser
|
|
101
|
+
Erhebung"*.
|
|
102
|
+
- **Die drei Sonden und die zwei Gegenproben zu Prüfung 70** laufen (`70a` bis `70c`,
|
|
103
|
+
`70a` und `70b`). Sonde `70a` setzt den Defekt **wörtlich** so, wie er gefunden wurde.
|
|
104
|
+
- **Der Nachlauf ist wieder angefahren und vollständig:** 28 von 28 Belegen gültig, `is_error` bei keinem, zusammen **28,38 USD**; die fünfzehn Kontrolläufe dieses Tages kosteten **15,85 USD** gegen rund 18,40 gerechnet. Kein Beleg des ersten Teils ist angefaßt worden.
|
|
105
|
+
- **Wirkungsnachweis zu E2 nach dem Nachlauf, ohne einen Lauf:** `reihe-b4.py` **ohne Argumente** geht jetzt den ganzen Zuschnitt durch – 27 Kennungen, alle übersprungen, **gefahren: 0 | Kosten dieser Reihe: 0.00 USD** – und nennt die elf Prompts ohne Baum. **Vorher brach er beim ersten dieser elf ab.**
|
|
106
|
+
|
|
107
|
+
## 3. Vorlage zur Entscheidung
|
|
108
|
+
|
|
109
|
+
| # | Frage | Auflösung | Preis |
|
|
110
|
+
|---|---|---|---|
|
|
111
|
+
| **E1** | **Wer bemerkt, daß ein Werkzeug des Kerns nicht mehr startet?** | **Prüfung 70.** Zu jeder `.py` unter `<CORE_DIR>/` wird die **Symboltabelle** gebaut, die der Interpreter selbst anlegt; gemeldet wird jeder global gelesene Name, den weder der Modulrumpf noch die eingebauten Namen binden – und jede Quelle, die er nicht übersetzt | **Verworfen: die Module zu importieren** – das führt den Modulrumpf aus; `ablage.py` bricht ohne `LW_ERHEBUNG` mit Absicht ab, `lauf.py` legt sein Belegverzeichnis an: **genau das, was D-222 verworfen hat.** *Eine Prüfung, die ihren Gegenstand verändert, mißt ihn nicht.* **Verworfen: `compile()`** – es übersetzt und kennt keine Bindung; der gemessene Fall wäre durchgelaufen. **Verworfen: ein Zähler über den Quelltext** (dieselbe Bauform, die D-223 verworfen hat). **Verworfen: den Anker an *keine `.py` im Kern* zu hängen** – der Validator ist selbst eine, der Anker wäre **durch Konstruktion** nie erreichbar (`0.59.1`); er hängt am Meßapparat, dessen Ablage nachweislich leer sein kann. **Preis, benannt:** Geprüft wird der **Name**, nicht der **Wert**; `S = None` und `os.path.dirname(S)` läuft durch – dieselbe Enthaltung wie bei Prüfung 68, und Gegenprobe `70b` hält sie fest |
|
|
112
|
+
| **E2** | **Woher kommt die Sollmenge einer Erhebung?** | **Aus ihren Meßbäumen.** `baeume-b4.py` legt genau die Bäume an, die der Zuschnitt nennt; `ablage.sollmenge()` leitet daraus **einmal** ab, und `stand-b4.py` wie `reihe-b4.py` benutzen dieselbe Ableitung. Ein Prompt **ohne** Baum ist die Zelle einer anderen Erhebung und wird **genannt** | **Verworfen: die Sollmenge zu pflegen** – *eine Zahl, die gepflegt werden muß, wird nicht gepflegt* (D-153), und derselbe Apparat hat es mit drei `--erwarte`-Werten vorgeführt (D-225). **Verworfen: das Promptverzeichnis je Erhebung zu beschneiden** – dann entschiede der Schreiber der Prompts über den Zuschnitt, und der Trockenlauf verlöre die Prompts, gegen die er prüft. **Verworfen: fehlende Bäume stillschweigend zu überspringen** – dann sähe *der Baum wurde nie gebaut* aus wie *die Zelle gehört nicht dazu*. **Preis, benannt:** Der Zuschnitt hängt an einem Zustand **außerhalb** des Repositoriums. Nach `baeume_loeschen.py` ist die Sollmenge leer – `stand-b4.py` sagt an dieser Stelle ausdrücklich, daß sein Stand dann **keine Aussage** über die Vollständigkeit ist, und `reihe-b4.py` bricht bei **null** Bäumen ab |
|
|
113
|
+
| **E3** | **Wird der Nachlauf vor oder nach der Abhilfe wieder angefahren?** | **Vor der Abhilfe, mit der Kennungsliste des Wiederaufnahmepunkts.** Die fünfzehn Kontrolläufe hängen an Bäumen, Vertrauenseinträgen und einer Zustandsaufnahme *vorher*, die seit dem 2026-09-20 stehen; jede Stunde Verzug ist eine Stunde, in der etwas davon verlorengehen kann | **Verworfen: erst die Abhilfe, dann fahren** – die Abhilfe berührt `reihe-b4.py`, und ein laufender Prozeß hat sein Modul bereits geladen; die Änderung hätte **auf den nächsten Lauf gewartet** und bis dahin nichts belegt. **Preis, benannt:** Die fünfzehn Kontrolläufe dieses Nachlaufs sind mit der **alten** Fassung gefahren – was sie messen, ändert das nicht (die Kennungen waren genannt), aber der Wirkungsnachweis zu E2 steht am **Stand**, nicht an der Reihe |
|
|
114
|
+
|
|
115
|
+
## 4. Entscheidung
|
|
116
|
+
|
|
117
|
+
**E1 bis E3 wie vorgelegt entschieden** (`<FRAMEWORK_OWNER>`, 2026-09-21). Decision
|
|
118
|
+
Records **D-229** und **D-230**. **Kriterium 2 unverändert bei 32** – dieser Durchgang
|
|
119
|
+
schließt keine Zelle und öffnet keine.
|
|
120
|
+
|
|
121
|
+
## 5. Abnahme
|
|
122
|
+
|
|
123
|
+
- `validate-framework.py --root .`: **0 Fehler, 0 Warnungen**.
|
|
124
|
+
- `probe-pruefungen.py`: **voller Lauf in beiden Kodierungsumgebungen, 283 Einheiten, 410 Meldezeilen, keine ohne `OK`** – oberhalb der Trennlinie **zeilengleich** (324,6 s und 324,4 s), darunter die fünf neuen Einheiten zu Prüfung 70.
|
|
125
|
+
- `zaehlen46.py`: **Katalog 4 | Testblätter 28 | Summe 32** – unverändert.
|
|
126
|
+
- Protokoll: `leitwerk-core/tests/protocols/2026-09-21-wiederaufnahme-nachlauf-b4.md`.
|
|
127
|
+
- **Kein Lauf am Client für die Befunde selbst, kein Kontingent verbraucht.**
|