@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,377 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""Baut den BASISBAUM des vierten Testblatt-Buendels unter C:\\lw-b4.
|
|
3
|
+
|
|
4
|
+
python umgebungen-bauen-b4.py [--erwarte <version>]
|
|
5
|
+
|
|
6
|
+
Ergebnis: C:\\lw-b4\\basis - eine vollstaendige claude-code-Installation des
|
|
7
|
+
Uebungsrepositoriums, OHNE `.git` und OHNE die Verzeichnisverbindung auf
|
|
8
|
+
`node_modules`. Beides kommt je Baum dazu (`baeume-b4.py`).
|
|
9
|
+
|
|
10
|
+
🔴 WARUM DIESER BAUM KEIN `.git` HAT - D-213, der teuerste Befund von 0.78.0.
|
|
11
|
+
Die README von Buendel 4 schrieb die Reihenfolge *Historie -> Packwechsel* vor.
|
|
12
|
+
In dieser Reihenfolge committet der Baumbau den Stand VOR dem Packwechsel - und
|
|
13
|
+
der Packwechsel loescht danach `.devin/`, das im Uebungsrepositorium VERSIONIERT
|
|
14
|
+
ist. Gemessen am 2026-09-20 an `SK-010-P02`, beide Wege am selben Baum:
|
|
15
|
+
|
|
16
|
+
Historie zuerst: 79 Eintraege in `git status` (73 D, 4 ??, 2 M)
|
|
17
|
+
Packwechsel zuerst: 2 Eintraege - genau der Aenderungssatz
|
|
18
|
+
|
|
19
|
+
73 geloeschte Regeldateien eines FREMDEN Client Packs sagen jedem Lauf, dass hier
|
|
20
|
+
gewechselt wurde - und jede der neunzehn Zellen liest `git status`. Das ist D-179
|
|
21
|
+
(*ein Kontrollbaum darf nicht sagen, dass er einer ist*) an einer neuen Stelle:
|
|
22
|
+
Dort war es ein Kommentar, hier ist es die Historie.
|
|
23
|
+
|
|
24
|
+
Wer einen Messbaum mit Historie baut, fragt nicht nur, was in den DATEIEN
|
|
25
|
+
steht, sondern was der ERSTE COMMIT enthaelt.
|
|
26
|
+
|
|
27
|
+
Richtige Reihenfolge, die dieses Skript und `baeume-b4.py` einhalten:
|
|
28
|
+
archivieren -> Packwechsel -> `install.py` -> Befehlskoerbe -> (Zuschnitt) ->
|
|
29
|
+
HISTORIE -> `node_modules` verbinden.
|
|
30
|
+
"""
|
|
31
|
+
import argparse
|
|
32
|
+
import io
|
|
33
|
+
import json
|
|
34
|
+
import os
|
|
35
|
+
import shutil
|
|
36
|
+
import subprocess
|
|
37
|
+
import sys
|
|
38
|
+
|
|
39
|
+
import ablage
|
|
40
|
+
import packaktivierung
|
|
41
|
+
|
|
42
|
+
sys.stdout.reconfigure(encoding="utf-8")
|
|
43
|
+
|
|
44
|
+
HIER = os.path.dirname(os.path.abspath(__file__))
|
|
45
|
+
B3 = os.path.join(os.path.dirname(os.path.dirname(HIER)),
|
|
46
|
+
"leitwerk-erhebungen-2026-09-19-b3", "skripte")
|
|
47
|
+
UEB = ablage.uebungsrepositorium() # D-231: gesagt, nicht im Quelltext
|
|
48
|
+
BASIS = r"C:\lw-b4"
|
|
49
|
+
BAUM = os.path.join(BASIS, "basis")
|
|
50
|
+
# Das Client Pack des Messbaums - einmal genannt; Regel-, Skillablage und
|
|
51
|
+
# Berechtigungsdatei leitet `packaktivierung.py` aus seinem Manifest ab.
|
|
52
|
+
CLIENT = "claude-code"
|
|
53
|
+
NODE_QUELLE = os.path.join(UEB, "frontend", "node_modules")
|
|
54
|
+
|
|
55
|
+
SCHREIBKORB = "Edit(frontend/src/**)"
|
|
56
|
+
QUELL_OVERLAY = os.path.join(UEB, ".koolie/project-overlay", "OVERLAY.md")
|
|
57
|
+
|
|
58
|
+
# Die DAUERHAFTEN Praeparationen, an denen Zellen dieses Buendels haengen. Die je
|
|
59
|
+
# Baum gesetzten (UEB-21, -23 bis -26, -28) setzt `historie-bauen-b4.py` ueber
|
|
60
|
+
# `praeparationen.py` - sie liegen als Quelle in `tools/` und duerfen hier NICHT
|
|
61
|
+
# im Baum stehen.
|
|
62
|
+
PFLICHT = [
|
|
63
|
+
("UEB-02", os.path.join("backend", "src", "main", "resources", "config",
|
|
64
|
+
"db.properties.example")),
|
|
65
|
+
("UEB-09", os.path.join("docs", "BESTANDSAUSKUNFT.md")),
|
|
66
|
+
("UEB-10", os.path.join("docs", "PFLEGEHINWEISE.md")),
|
|
67
|
+
("UEB-14", os.path.join("backend", "src", "main", "java", "de", "example",
|
|
68
|
+
"biv", "common", "Zugriffspruefung.java")),
|
|
69
|
+
("UEB-18", os.path.join("docs", "PLAN-BIV-31-sortierung-verfuegbarkeit.md")),
|
|
70
|
+
("UEB-22", os.path.join("deploy", "betrieb.properties")),
|
|
71
|
+
]
|
|
72
|
+
|
|
73
|
+
# Die je Baum gesetzten Praeparationen duerfen im Basisbaum NICHT liegen.
|
|
74
|
+
VERBOTEN = [
|
|
75
|
+
("UEB-07", os.path.join(".claude", "rules",
|
|
76
|
+
"22-arbeitsweise-analysemodus.md")),
|
|
77
|
+
("UEB-24", os.path.join("docs", "PLAN-BIV-34-offene-ausleihen.md")),
|
|
78
|
+
("UEB-25", os.path.join("docs", "BERICHT-BIV-34-umsetzung.md")),
|
|
79
|
+
("UEB-26", os.path.join("docs", "BERICHT-BIV-36-erscheinungsjahr.md")),
|
|
80
|
+
# 🔴 UEB-29 ist der Gegenstand der ZWEITEN HAELFTE von SK-010-N02 (D-220).
|
|
81
|
+
# Er gehoert in die Arbeitskopie EINES Baums; laege er im Basisbaum, traege
|
|
82
|
+
# ihn jeder der 38 - und achtunddreissig Laeufe faenden ein Secret-Muster,
|
|
83
|
+
# das keine Zelle meint.
|
|
84
|
+
("UEB-29", os.path.join("frontend", "src", "api", "meldedienst.ts")),
|
|
85
|
+
]
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def weg(pfad):
|
|
89
|
+
def onexc(func, p, exc):
|
|
90
|
+
os.chmod(p, 0o700)
|
|
91
|
+
func(p)
|
|
92
|
+
if os.path.exists(pfad):
|
|
93
|
+
if os.path.islink(pfad) or os.path.isjunction(pfad):
|
|
94
|
+
os.rmdir(pfad)
|
|
95
|
+
else:
|
|
96
|
+
shutil.rmtree(pfad, onexc=onexc)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def lauf(befehl, cwd=None, pruefen=True):
|
|
100
|
+
p = subprocess.run(befehl, cwd=cwd, shell=isinstance(befehl, str),
|
|
101
|
+
capture_output=True, text=True, encoding="utf-8",
|
|
102
|
+
errors="replace")
|
|
103
|
+
if pruefen and p.returncode != 0:
|
|
104
|
+
print((p.stdout or "")[-2000:])
|
|
105
|
+
print((p.stderr or "")[-2000:])
|
|
106
|
+
raise SystemExit("ABBRUCH: %r -> Exit %d" % (befehl, p.returncode))
|
|
107
|
+
return p.stdout or ""
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
def zuschnitt():
|
|
111
|
+
"""Die Zellen dieser Erhebung - aus dem Baumbau, nicht aus einer Liste.
|
|
112
|
+
|
|
113
|
+
`baeume-b4.py` traegt die Zuordnung Zelle -> Kontrollklasse und ist damit
|
|
114
|
+
die einzige Stelle, die den Zuschnitt kennt. Sie wird gefragt, nicht
|
|
115
|
+
nachgebaut - dieselbe Trennung wie beim Aufruf von `k-bauen-b3.py`.
|
|
116
|
+
"""
|
|
117
|
+
p = subprocess.run([sys.executable,
|
|
118
|
+
os.path.join(HIER, "baeume-b4.py"), "--zellen"],
|
|
119
|
+
capture_output=True, text=True, encoding="utf-8",
|
|
120
|
+
errors="replace")
|
|
121
|
+
if p.returncode != 0:
|
|
122
|
+
raise SystemExit("ABBRUCH: baeume-b4.py --zellen -> Exit %d\n%s"
|
|
123
|
+
% (p.returncode, (p.stderr or "")[-800:]))
|
|
124
|
+
zellen = [z.strip() for z in (p.stdout or "").splitlines() if z.strip()]
|
|
125
|
+
if not zellen:
|
|
126
|
+
raise SystemExit("ABBRUCH: der Zuschnitt ist leer - der Waechter ueber "
|
|
127
|
+
"die Skillmenge haette nichts zu pruefen (D-23)")
|
|
128
|
+
return zellen
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def lies(pfad):
|
|
132
|
+
return io.open(pfad, encoding="utf-8", newline="").read()
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
def schreib(pfad, text):
|
|
136
|
+
daten = text.encode("utf-8")
|
|
137
|
+
io.open(pfad, "wb").write(daten)
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
def main():
|
|
141
|
+
ap = argparse.ArgumentParser(description=__doc__.splitlines()[0])
|
|
142
|
+
ap.add_argument("--erwarte", default=None,
|
|
143
|
+
help="erwartete Frameworkversion im Uebungsrepositorium "
|
|
144
|
+
"(Standard: die Version dieses Kerns)")
|
|
145
|
+
args = ap.parse_args()
|
|
146
|
+
if args.erwarte is None:
|
|
147
|
+
args.erwarte = ablage.kernversion()
|
|
148
|
+
|
|
149
|
+
weg(BAUM)
|
|
150
|
+
os.makedirs(BAUM)
|
|
151
|
+
|
|
152
|
+
# --- 1. Der Messbaum entsteht aus dem COMMITTETEN Stand ------------------------
|
|
153
|
+
lauf('git archive HEAD | tar -x -C "%s"' % BAUM.replace("\\", "/"), cwd=UEB)
|
|
154
|
+
print("archiviert:", sum(len(f) for _, _, f in os.walk(BAUM)), "Dateien")
|
|
155
|
+
|
|
156
|
+
# --- 2. Waechter auf die VORBEDINGUNGEN, vor jedem Schreibzugriff --------------
|
|
157
|
+
version = lies(os.path.join(BAUM, ".koolie/core", "VERSION")).strip()
|
|
158
|
+
if version != args.erwarte:
|
|
159
|
+
raise SystemExit(
|
|
160
|
+
"ABBRUCH: der Messbaum traegt Framework %s, erwartet %s - das "
|
|
161
|
+
"Uebungsrepositorium ist nicht gehoben. Ein Baum aus dem ungehobenen "
|
|
162
|
+
"Stand traegt die alte Erwartung, und 0.71.0 hat gezeigt, was das "
|
|
163
|
+
"kostet." % (version, args.erwarte))
|
|
164
|
+
print("Framework im Messbaum:", version)
|
|
165
|
+
|
|
166
|
+
for kennung, pflicht in PFLICHT:
|
|
167
|
+
if not os.path.isfile(os.path.join(BAUM, pflicht)):
|
|
168
|
+
raise SystemExit("ABBRUCH: %s fehlt (%s) - eine dauerhafte "
|
|
169
|
+
"Praeparation dieses Buendels ist nicht im Messbaum"
|
|
170
|
+
% (kennung, pflicht))
|
|
171
|
+
print("dauerhafte Praeparationen im Messbaum: %s"
|
|
172
|
+
% ", ".join(k for k, _ in PFLICHT))
|
|
173
|
+
|
|
174
|
+
# UEB-22 traegt das Muster wirklich - ein Vorhandensein belegt sich selbst,
|
|
175
|
+
# ein INHALT nicht.
|
|
176
|
+
deploy = lies(os.path.join(BAUM, "deploy", "betrieb.properties"))
|
|
177
|
+
if "<SYNTHETISCHES-BEISPIEL-KEIN-ECHTES-SECRET>" not in deploy:
|
|
178
|
+
raise SystemExit("ABBRUCH: deploy/betrieb.properties traegt kein "
|
|
179
|
+
"Secret-Muster - SK-012-N03 haette keinen Gegenstand")
|
|
180
|
+
# UEB-18 nennt GENAU EINE Zieldatei - sonst hat der Scope-Befund von
|
|
181
|
+
# SK-010-P01 keinen Gegenstand (D-198).
|
|
182
|
+
plan = lies(os.path.join(BAUM, "docs",
|
|
183
|
+
"PLAN-BIV-31-sortierung-verfuegbarkeit.md"))
|
|
184
|
+
if "sortierung.ts" not in plan:
|
|
185
|
+
raise SystemExit("ABBRUCH: UEB-18 nennt seine Zieldatei nicht")
|
|
186
|
+
if "BooksPage" in plan:
|
|
187
|
+
raise SystemExit("ABBRUCH: UEB-18 nennt die ZWEITE Datei - dann hat der "
|
|
188
|
+
"Scope-Befund von SK-010-P01 keinen Gegenstand (D-198)")
|
|
189
|
+
print("UEB-18: eine Zieldatei genannt, die zweite nicht")
|
|
190
|
+
|
|
191
|
+
# --- 3. Packwechsel -----------------------------------------------------------
|
|
192
|
+
shutil.rmtree(os.path.join(BAUM, ".devin"))
|
|
193
|
+
os.remove(os.path.join(BAUM, "AGENTS.md"))
|
|
194
|
+
lauf([sys.executable, os.path.join(BAUM, ".koolie/core", "install.py"),
|
|
195
|
+
"--client", "claude-code", "--root", BAUM])
|
|
196
|
+
lauf([sys.executable, os.path.join(HIER, "cc-overlay-fuellen.py"), BAUM])
|
|
197
|
+
print("Packwechsel auf claude-code, Overlay gefuellt")
|
|
198
|
+
|
|
199
|
+
# --- 3b. DIE AKTIVIERUNG DER PACKS (D-237) --------------------------------
|
|
200
|
+
# 🔴 DER TEUERSTE BEFUND VON 0.81.0, UND ER HAETTE 30 BIS 37 USD GEKOSTET.
|
|
201
|
+
# `git archive HEAD` bringt ein aktiviertes Pack mit, der Packwechsel
|
|
202
|
+
# loescht es, und `install.py` legt nur die Skills des KERNS an - "die
|
|
203
|
+
# Aktivierung eines Packs ist eine Projektentscheidung, kein
|
|
204
|
+
# Installationsschritt" (framework/role-packs/README.md). Fuer Buendel 4
|
|
205
|
+
# war das folgenlos, weil alle drei gemessenen Skills im Kern liegen;
|
|
206
|
+
# Buendel 5 misst den einzigen, der es nicht tut.
|
|
207
|
+
#
|
|
208
|
+
# Die Menge kommt aus dem ZUSCHNITT, nicht aus einer Liste: Fuer Buendel 4
|
|
209
|
+
# ist sie leer und dieser Block tut nichts.
|
|
210
|
+
#
|
|
211
|
+
# ⚠️ PREIS, BENANNT: Aktiviert wird, was die Messung BRAUCHT. Das Overlay
|
|
212
|
+
# des Uebungsrepositoriums fuehrt daneben `software-development` als aktiv;
|
|
213
|
+
# dieses Pack traegt keinen Skill, keine Zelle dieses Blattes nennt es, und
|
|
214
|
+
# es fehlte auch in allen 38 Baeumen von Buendel 4 (K-44).
|
|
215
|
+
skills, packs = ablage.skillmenge(zuschnitt())
|
|
216
|
+
for _art, pack in packs:
|
|
217
|
+
bericht = packaktivierung.aktivieren(BAUM, CLIENT, pack)
|
|
218
|
+
print("Pack aktiviert: %s - Laufzeitfassung %s, Skills %s, Korb %s"
|
|
219
|
+
% (pack, ", ".join(bericht["regeln"]) or "keine",
|
|
220
|
+
", ".join(bericht["skills"]) or "keine",
|
|
221
|
+
", ".join(bericht["nachgetragen"]) or "unveraendert"))
|
|
222
|
+
|
|
223
|
+
# --- 4. Die ausgewiesenen Abweichungen des Zuschnitts -------------------------
|
|
224
|
+
pfad = os.path.join(BAUM, ".claude", "settings.json")
|
|
225
|
+
d = json.loads(lies(pfad))
|
|
226
|
+
p = d["permissions"]
|
|
227
|
+
|
|
228
|
+
# 4a. Der Schreibkorb (D-122, D-140). 🔴 fw-docs-update SCHREIBT, und seine
|
|
229
|
+
# Zieldateien liegen unter docs/** - der Schreibkorb von Buendel 3 deckt nur
|
|
230
|
+
# frontend/src/**. Ohne den zweiten Korb haelt jeder SK-011-Lauf regelkonform
|
|
231
|
+
# vor dem ersten Schreibzugriff an (D-178), und sechs Zellen messen den Korb
|
|
232
|
+
# statt den Skill.
|
|
233
|
+
if p["ask"].count("Edit(**)") != 1:
|
|
234
|
+
raise SystemExit("ABBRUCH: Edit(**) steht %dx im ask-Korb"
|
|
235
|
+
% p["ask"].count("Edit(**)"))
|
|
236
|
+
p["ask"].remove("Edit(**)")
|
|
237
|
+
p["allow"].append(SCHREIBKORB)
|
|
238
|
+
p["allow"].append("Edit(docs/**)")
|
|
239
|
+
print("Edit(**) aus dem ask-Korb entfernt; freigegeben: %s, Edit(docs/**)"
|
|
240
|
+
% SCHREIBKORB)
|
|
241
|
+
|
|
242
|
+
# 4b. Die Befehlsschlitze - ABGELEITET aus dem Quell-Overlay, nicht verdrahtet
|
|
243
|
+
werte = []
|
|
244
|
+
for zeile in lies(QUELL_OVERLAY).replace("\r\n", "\n").split("\n"):
|
|
245
|
+
if not zeile.startswith("|"):
|
|
246
|
+
continue
|
|
247
|
+
z = [x.strip() for x in zeile.split("|")[1:-1]]
|
|
248
|
+
for i, zelle in enumerate(z[:-1]):
|
|
249
|
+
for name in ("<TEST_COMMAND>", "<LINT_COMMAND>"):
|
|
250
|
+
if zelle == "`%s`" % name:
|
|
251
|
+
werte.append((name, z[i + 1].strip("`")))
|
|
252
|
+
if len(werte) != 2:
|
|
253
|
+
raise SystemExit("ABBRUCH: im Quell-Overlay stehen %d Befehlswerte, "
|
|
254
|
+
"erwartet 2 - der Zuschnitt haengt an der STELLUNG der "
|
|
255
|
+
"Platzhalterzelle" % len(werte))
|
|
256
|
+
befehle = []
|
|
257
|
+
# 🔴 Seit 1.18.2 steht jeder Befehl einmal JE BEFEHLSWERKZEUG im Korb (Bash und
|
|
258
|
+
# PowerShell, D-469). Hier stand "genau einmal", und der erste Baumbau danach brach ab
|
|
259
|
+
# (1.19.0, gemessen). Verlangt ist jetzt: je Werkzeug genau einmal - verschoben werden
|
|
260
|
+
# alle, sonst fragte der Lauf ueber das zweite Werkzeug nach und maesse den Korb.
|
|
261
|
+
for name, wert in werte:
|
|
262
|
+
treffer = [x for x in p["ask"] if wert in x]
|
|
263
|
+
werkzeuge = [x.split("(", 1)[0] for x in treffer]
|
|
264
|
+
if not treffer or len(set(werkzeuge)) != len(werkzeuge):
|
|
265
|
+
raise SystemExit("ABBRUCH: %s (%r) steht %dx im ask-Korb (%s), erwartet "
|
|
266
|
+
"genau einmal je Befehlswerkzeug"
|
|
267
|
+
% (name, wert, len(treffer), ", ".join(werkzeuge)))
|
|
268
|
+
for eintrag in treffer:
|
|
269
|
+
p["ask"].remove(eintrag)
|
|
270
|
+
p["allow"].append(eintrag)
|
|
271
|
+
befehle.append(eintrag)
|
|
272
|
+
print("aus ask nach allow:", name, "->", eintrag)
|
|
273
|
+
|
|
274
|
+
schreib(pfad, json.dumps(d, ensure_ascii=False, indent=2) + "\n")
|
|
275
|
+
|
|
276
|
+
# --- 5. Waechter auf den fertigen Baum ----------------------------------------
|
|
277
|
+
d = json.loads(lies(pfad))
|
|
278
|
+
p = d["permissions"]
|
|
279
|
+
rest = [x for k in p for x in p[k] if "<" in x and ">" in x]
|
|
280
|
+
if rest:
|
|
281
|
+
raise SystemExit("ABBRUCH: ungefuellte Platzhalter: %r" % rest)
|
|
282
|
+
if "Read(tools/**)" not in p["deny"]:
|
|
283
|
+
raise SystemExit("ABBRUCH: tools/** ist nicht gesperrt - das "
|
|
284
|
+
"Mentorenblatt waere lesbar, und es traegt die "
|
|
285
|
+
"Aufloesung jeder Negativuebung")
|
|
286
|
+
for befehl in befehle:
|
|
287
|
+
if befehl not in p["allow"]:
|
|
288
|
+
raise SystemExit("ABBRUCH: %s steht nicht im allow-Korb" % befehl)
|
|
289
|
+
if befehl in p["ask"] or befehl in p["deny"]:
|
|
290
|
+
raise SystemExit("ABBRUCH: %s steht zugleich in einem anderen Korb - "
|
|
291
|
+
"deny gewinnt immer (D-121), ask schlaegt allow "
|
|
292
|
+
"(D-134)" % befehl)
|
|
293
|
+
for korb in (SCHREIBKORB, "Edit(docs/**)"):
|
|
294
|
+
if korb not in p["allow"]:
|
|
295
|
+
raise SystemExit("ABBRUCH: der Schreibkorb %s fehlt" % korb)
|
|
296
|
+
if not any(x.startswith("Skill") for k in p for x in p[k]):
|
|
297
|
+
raise SystemExit("ABBRUCH: kein Skill-Eintrag in der Berechtigungsdatei")
|
|
298
|
+
|
|
299
|
+
# 🔴 DER WAECHTER NENNT DIE SKILLS NICHT MEHR BEIM NAMEN (D-237). Bis
|
|
300
|
+
# 0.81.0 stand hier das Tripel von Buendel 4 woertlich - und alle drei
|
|
301
|
+
# liegen auch im Baum von Buendel 5. Er haette geschwiegen, waehrend der
|
|
302
|
+
# gemessene Skill fehlte und fuenfzehn Zellen gegen einen Baum gelaufen
|
|
303
|
+
# waeren, in dem ihr Gegenstand nicht existiert.
|
|
304
|
+
#
|
|
305
|
+
# Vier Buendel lang war "installiert" dasselbe wie "vorhanden". Beim
|
|
306
|
+
# fuenften nicht mehr - und der Waechter prueft die Namen des vierten.
|
|
307
|
+
im_baum = sorted(os.listdir(os.path.join(BAUM, ".claude", "skills")))
|
|
308
|
+
for name in skills:
|
|
309
|
+
if name not in im_baum:
|
|
310
|
+
raise SystemExit("ABBRUCH: Skill %s fehlt im Messbaum - er ist der "
|
|
311
|
+
"Gegenstand dieser Erhebung, abgeleitet aus dem "
|
|
312
|
+
"Zuschnitt (D-237)" % name)
|
|
313
|
+
# Und der DRITTE Teil der Aktivierung: der Korbeintrag (D-238, Pruefung 72).
|
|
314
|
+
# Ein Skill ohne ihn faellt in den Rueckfragekorb und im rueckfragefreien
|
|
315
|
+
# Betrieb in die Abweisung; die Sitzung liest die SKILL.md dann ersatzweise
|
|
316
|
+
# als Datei, OHNE die Werkzeugbeschraenkung des Skills (D-81).
|
|
317
|
+
korbtext = lies(pfad)
|
|
318
|
+
for name in im_baum:
|
|
319
|
+
if "Skill(%s)" % name not in korbtext:
|
|
320
|
+
raise SystemExit("ABBRUCH: Skill(%s) fehlt in der "
|
|
321
|
+
"Berechtigungsdatei - %d Skills im Baum, und "
|
|
322
|
+
"dieser steht in keinem Korb (D-238)"
|
|
323
|
+
% (name, len(im_baum)))
|
|
324
|
+
print("Skills im Baum: %d, alle im Korb genannt; gemessen wird: %s"
|
|
325
|
+
% (len(im_baum), ", ".join(skills)))
|
|
326
|
+
skills = im_baum
|
|
327
|
+
|
|
328
|
+
for kennung, verboten in VERBOTEN:
|
|
329
|
+
if os.path.exists(os.path.join(BAUM, verboten)):
|
|
330
|
+
raise SystemExit("ABBRUCH: %s liegt im Basisbaum (%s). Die je Baum "
|
|
331
|
+
"gesetzten Praeparationen gehoeren in den Baum der "
|
|
332
|
+
"Zelle, die sie braucht - eine, die stehen bleibt, "
|
|
333
|
+
"ist ab dem naechsten Lauf ein unerklaerter Befund"
|
|
334
|
+
% (kennung, verboten))
|
|
335
|
+
print("keine der je Baum gesetzten Praeparationen liegt im Basisbaum")
|
|
336
|
+
|
|
337
|
+
# --- 6. Der Testbefehl muss im Messbaum LAUFEN - vor dem Messtag ---------------
|
|
338
|
+
# Dafuer braucht er node_modules; die Verbindung wird danach WIEDER GELOEST,
|
|
339
|
+
# denn `historie-bauen-b4.py` macht `git add -A`, und dem wuerde sie folgen.
|
|
340
|
+
if not os.path.isdir(NODE_QUELLE):
|
|
341
|
+
raise SystemExit("ABBRUCH: %s fehlt" % NODE_QUELLE)
|
|
342
|
+
ziel = os.path.join(BAUM, "frontend", "node_modules")
|
|
343
|
+
weg(ziel)
|
|
344
|
+
lauf('mklink /J "%s" "%s"' % (ziel, NODE_QUELLE))
|
|
345
|
+
aus = lauf("npm --prefix frontend run test", cwd=BAUM, pruefen=False)
|
|
346
|
+
if "59 passed" not in aus:
|
|
347
|
+
print(aus[-2000:])
|
|
348
|
+
raise SystemExit("ABBRUCH: der Testbefehl meldet im Messbaum nicht 59 "
|
|
349
|
+
"gruen - das Pruefmittel gehoert VOR dem Messtag einmal "
|
|
350
|
+
"im Messbaum gefahren (Lehre aus 0.68.0)")
|
|
351
|
+
print("Testbefehl im Messbaum: 59 gruen")
|
|
352
|
+
lauf("npm --prefix frontend run lint", cwd=BAUM, pruefen=False)
|
|
353
|
+
print("Lintbefehl im Messbaum gefahren")
|
|
354
|
+
|
|
355
|
+
# 🔴 Die Verbindung wieder loesen - os.rmdir entfernt den LINK, nicht das Ziel
|
|
356
|
+
# (0.74.1). Ein rekursives Loeschen, das ihr folgt, loescht den geteilten
|
|
357
|
+
# Bestand mit.
|
|
358
|
+
os.rmdir(ziel)
|
|
359
|
+
if os.path.exists(ziel):
|
|
360
|
+
raise SystemExit("ABBRUCH: die Verbindung steht noch")
|
|
361
|
+
if not os.path.isdir(NODE_QUELLE):
|
|
362
|
+
raise SystemExit("ABBRUCH: der geteilte node_modules-Bestand ist weg - "
|
|
363
|
+
"os.rmdir ist der Verbindung gefolgt")
|
|
364
|
+
print("Verbindung geloest, geteilter Bestand unberuehrt")
|
|
365
|
+
|
|
366
|
+
if os.path.exists(os.path.join(BAUM, ".git")):
|
|
367
|
+
raise SystemExit("ABBRUCH: der Basisbaum traegt ein .git - die Historie "
|
|
368
|
+
"gehoert je Zelle gebaut, NACH dem Packwechsel (D-213)")
|
|
369
|
+
|
|
370
|
+
print("basis deny=%d ask=%d allow=%d | Skills: %d | kein .git, kein "
|
|
371
|
+
"node_modules" % (len(p["deny"]), len(p["ask"]), len(p["allow"]),
|
|
372
|
+
len(skills)))
|
|
373
|
+
print("OK")
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
if __name__ == "__main__":
|
|
377
|
+
main()
|