@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,229 @@
|
|
|
1
|
+
# Client Pack `cursor`
|
|
2
|
+
|
|
3
|
+
| Attribut | Wert |
|
|
4
|
+
|---|---|
|
|
5
|
+
| Modul-ID | `CP-CU` |
|
|
6
|
+
| Ebene | keine – Abbildungsschicht |
|
|
7
|
+
| Version | 0.3.0 |
|
|
8
|
+
| Status | pilot |
|
|
9
|
+
| Owner (Rolle) | `<FRAMEWORK_OWNER>` |
|
|
10
|
+
| Client | Cursor – Kommandozeile (`cursor-agent`, auch `agent`) und IDE; die Agenten in der Cloud des Anbieters fallen unter D-10 und nicht unter dieses Pack |
|
|
11
|
+
| Verbindliche Zielversion | Kommandozeile `2026.09.x`; IDE `3.22.x` (D-112) |
|
|
12
|
+
| Geprüfte Clientversion | Kommandozeile `2026.09.26-dd393fe` – vor dem Messen festgeschrieben (D-117). IDE `3.22.7` installiert, **an keiner Sitzung gemessen** (`K-175`). Konto: Free, Modell `auto` |
|
|
13
|
+
| Stand der Produktbeobachtung | Quellenliste in Anhang 31.4.5 (`QU-1` bis `QU-8`), abgerufen am 2026-09-26. `FW-AK-01` ist für dieses Pack nicht gefahren |
|
|
14
|
+
| Datum der Prüfung | **2026-09-26** – der Bau (`CR-2026-155`, `tests/protocols/2026-09-26-bau-cursor.md`): 24 Läufe an realen Installationen im Betrieb ohne Rückfragen, davon fünf Abnahmeläufe am installierten Pack; Free-Tarif, 0 USD |
|
|
15
|
+
|
|
16
|
+
> **Belegt, soweit gemessen (Stand 1.16.0).** Die Spalte „Einstufung" nennt die **vorgesehene** Durchsetzungstiefe, die Spalte „Beleg" ihren Nachweisstand: `gemessen` = an diesem Client beobachtet, `[DOK]` = aus der Herstellerdokumentation mit Quellenkennung, `[EMPF]` = Vorgabe des Frameworks, `BELEG OFFEN` = noch nicht belegt, mit Grund und Datum.
|
|
17
|
+
>
|
|
18
|
+
> **Alle sechs Kernzusagen sind `[TECHNISCH]`** – gemessen unter **Windows** an der Kommandozeile. 🔴 **Die Schreibweise der Pfadmuster ist die Bedingung:** Der Client vergleicht ein Muster mit dem **absoluten** Pfad, und die Muster der Herstellerdokumentation (`Read(.env)`, `Read(**/.env)`) ließen den Köder unter Windows durch (Abschnitt 1b).
|
|
19
|
+
>
|
|
20
|
+
> 🔴 **Drei Befunde stehen in keiner Dokumentation:** Ein weiterer Schlüssel in der Berechtigungsdatei lässt den Client nicht starten; ein durchsetzender Hook muss auch beim Durchlass antworten; die Hook-Eingabe beginnt unter Windows mit einem BOM (Abschnitt 1b, H2, H4).
|
|
21
|
+
>
|
|
22
|
+
> **Wer das Pack einsetzt,** liest zuerst Abschnitt 1b und Abschnitt 6.
|
|
23
|
+
|
|
24
|
+
## 1. Pfadabbildung
|
|
25
|
+
|
|
26
|
+
| Rolle des Artefakts | Pfad bei diesem Client | Belegstatus |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| Wurzel-Anweisungsdatei | `AGENTS.md` | **gemessen** (2026-09-26): steht in jeder Sitzung im Kontext, auch im Betrieb ohne Rückfragen |
|
|
29
|
+
| Regeldateien | `.cursor/rules/*.mdc`; Lademodus im Frontmatter (`alwaysApply`, `globs`) | **gemessen:** eine `.mdc`-Datei mit `alwaysApply: true` lädt in jeder Sitzung; 🔴 **eine `.md`-Datei in derselben Ablage lädt nie** |
|
|
30
|
+
| Skills | `.cursor/skills/<name>/SKILL.md` | **gemessen:** ein Skill mit den Frontmatter-Feldern des Frameworks wurde gefunden und gelesen |
|
|
31
|
+
| Subagentenprofile | `.cursor/agents/<name>.md` (Frontmatter `name`, `description`, `readonly`) | `[DOK]` **`QU-5`**; die Wirkung ist Gegenstand von A1 |
|
|
32
|
+
| Berechtigungskonfiguration | `.cursor/cli.json` – **nur** der Schlüssel `permissions` mit `allow` und `deny` (erzeugt aus `framework/runtime/permissions.json`) | **gemessen:** ein `deny` darin weist ab (*„Blocked by permissions configuration"*), auch mit `--force` |
|
|
33
|
+
| Ausschlussdatei | `.cursorignore` – Syntax von `.gitignore`, erzeugt aus den Leseverboten der Kernquelle | **gemessen:** sperrt Lesen **und Suchen**; die Berechtigungsdatei sperrt nur das Lesen (D-443) |
|
|
34
|
+
| Hook-Konfiguration | `.cursor/hooks.json`, Form `{version: 1, hooks: {ereignis: [...]}}` | **gemessen:** lädt auch im Betrieb ohne Rückfragen, in einem vertrauten Arbeitsbereich |
|
|
35
|
+
| Planartefakt | **keines im Repositorium** – der Planmodus des Clients legt seinen Plan außerhalb ab | **gemessen:** `createPlan` mit leerer Ablageadresse; Träger des Plans ist die Planvorlage des Kerns (M4) |
|
|
36
|
+
| MCP-Konfiguration | `.cursor/mcp.json` | `[DOK]` **`QU-2`**; das Framework liefert keinen Server aus. **Gemessen am 2026-09-28** (Stichprobe zu `1.18.0`, D-462): Ein Server mit `"url"` und `"headers"` lädt, die Kopfzeile `"Basic ${env:VARIABLE}"` wird aus der Umgebung gefüllt – die Datei trägt keinen Zugang. Ein Server der Projektdatei braucht eine Freigabe (`agent mcp list`: *needs approval*); `agent mcp enable` meldet sie, im Druckmodus stand der Server trotzdem nicht bereit – erst mit `--approve-mcps`, das **alle** Server freigibt |
|
|
37
|
+
| Projektverzeichnis im Hook-Befehl | **keine Variable – das Arbeitsverzeichnis** | **gemessen:** der Hook-Prozess steht in der Projektwurzel. `CURSOR_PROJECT_DIR` steht in der Umgebung, aber unter Windows läuft das Kommando durch eine PowerShell-Hülle |
|
|
38
|
+
| Nutzerlokale Überschreibung | **kein Mechanismus** | Der Hersteller dokumentiert keine nutzerlokale Wurzel-Anweisung; das Pack liefert keine Beispieldatei aus |
|
|
39
|
+
|
|
40
|
+
## 1a. Semantikabbildung der Berechtigungen
|
|
41
|
+
|
|
42
|
+
Die Regelmenge liegt werkzeugneutral im Kern und wird bei der Installation übersetzt (D-18). Dieser Client kennt Regeln der Gestalt `Typ(Muster)` wie die erste Ausgabeform – **aber nur `allow` und `deny`**, und die Datei darf **keinen weiteren Schlüssel** tragen. Die Abbildung ist deshalb eine eigene Ausgabeform (`cursor-json`, D-440).
|
|
43
|
+
|
|
44
|
+
| Neutrales Werkzeugverb | Regeltyp bei diesem Client | Anmerkung |
|
|
45
|
+
|---|---|---|
|
|
46
|
+
| `read` | `Read(…)` | Jedes Muster in **zwei Schreibweisen** mit führendem `*`: `Read(*/.env)` und `Read(*\.env)` (Abschnitt 1b) |
|
|
47
|
+
| `search` | – | Kein Regeltyp. 🔴 **Das Suchwerkzeug wertet ein `Read`-Verbot nicht aus** – gemessen. Die Lesesperre für die Suche trägt `.cursorignore` (D-443) |
|
|
48
|
+
| `write` | `Write(…)` | Zwei Schreibweisen wie `read`. Deckt das Löschwerkzeug mit – gemessen |
|
|
49
|
+
| `exec` | `Shell(…)` ohne Stern | Das Muster trifft den Befehl und jeden, der mit ihm und einem Leerzeichen beginnt (Programmcode); verkettete Befehle zerlegt der Client – gemessen |
|
|
50
|
+
| `fetch` | `WebFetch(*)` | Das Argument ist eine Domain |
|
|
51
|
+
| `mcp` | – (nur Rückfrage) | Ein MCP-Werkzeug braucht die Freigabe seines Servers (`QU-2`) |
|
|
52
|
+
| `skill` | – | Ein Skill ist bei diesem Client eine Datei, kein Werkzeug mit Berechtigung |
|
|
53
|
+
|
|
54
|
+
| Weitere Eigenschaft | Wert |
|
|
55
|
+
|---|---|
|
|
56
|
+
| Rückfragekorb | **keiner** – die Rückfrageregeln der Kernquelle erklärt das Manifest (`permission_ask_ohne_korb`) statt sie zu erzeugen |
|
|
57
|
+
| Ebenen | Die Projektdatei wird in die globale Konfiguration gemischt; **Listen ersetzen** dabei die globalen (Programmcode) |
|
|
58
|
+
| Hook-Werkzeugnamen | `Read`, `Grep`, `Shell`, `Write`, `Delete`; das Dateinamenwerkzeug `Glob` löst keinen Hook aus |
|
|
59
|
+
| Pfadfelder der Hook-Eingabe | `file_path` (absolut); `Shell` führt `command` |
|
|
60
|
+
| Sperrform des Schutz-Hooks | `permission-json`: `{"permission": "deny"}` und Exit 2, beim Durchlass `{}` (D-441) |
|
|
61
|
+
|
|
62
|
+
## 1b. Die vier Bedingungen, unter denen das Pack trägt
|
|
63
|
+
|
|
64
|
+
**1. Pfadmuster treffen nur mit führendem `*`.** Der Client vergleicht ein Muster **verankert mit dem absoluten Pfad**, und `*` steht dabei für eine beliebige Zeichenfolge über Trenner hinweg (Programmcode). Gemessen unter Windows: `Read(.env)` und `Read(**/.env)` ließen den Köder durch, `Read(*\.env)` und `Read(*.p12)` sperrten. Die Abbildung erzeugt deshalb jedes Pfadmuster zweimal, mit `/` für macOS und Linux und mit `\` für Windows. **Die Schreibweise mit `/` ist nicht gemessen** – sie folgt aus dem Programmcode (`K-176`). ⚠️ Der Preis: Das Muster ist **breiter** als das der Kernquelle – `Write(*/AGENTS.md)` sperrt auch ein `AGENTS.md` in einem Unterordner, und `Read(*/*secret*)` sperrt jede Datei, in deren Pfad `secret` vorkommt, **auch oberhalb des Projekts**. Bei einem Verbot ist das eine Verschärfung; ein Projekt unter einem solchen Pfad kann nichts mehr lesen und merkt es sofort.
|
|
65
|
+
|
|
66
|
+
**2. Die Berechtigungsdatei trägt nur `permissions`.** Gemessen: Mit `_comment` und `_core_rules_integrity` brach der Client mit Exit 1 ab (*„Unrecognized key(s) in object"*), ebenso bei kaputtem JSON. Das ist **fail-closed** – der Client startet nicht, statt ohne Regeln zu laufen. **Prüfung 97** hält die Datei gegen die Kernquelle, weil sie ihre Kernregeln nicht selbst auflisten kann.
|
|
67
|
+
|
|
68
|
+
**3. Die Hooks brauchen einen vertrauten Arbeitsbereich und unter Windows den richtigen Start.** Sie laufen in jeder Sitzung, **auch ohne Rückfragen** – anders als bei `kiro`. Unter Windows reicht der Client die Eingabe durch eine PowerShell-Hülle weiter. 🔴 **Mit gesetzter Variable `SHELL`** (Start aus Git Bash) führt er diese Hülle in `bash` aus; sie scheitert, und ein Hook mit `failClosed` sperrt dann **jede** Operation – gemessen. Aus PowerShell oder `cmd` gestartet, laufen die Hooks.
|
|
69
|
+
|
|
70
|
+
**4. Fremde Konfigurationen laden mit.** Der Client lädt standardmäßig Hooks von Claude Code aus `.claude/settings.json` **und `~/.claude/settings.json`**, Skills aus `.claude/skills/`, `.codex/skills/` und `~/.claude/skills/` und die Datei `CLAUDE.md` der Projektwurzel – gemessen. Der Schalter ist eine Einstellung der IDE (*Third-Party Imports*), nicht des Projekts. `install.py` meldet, was davon auf dem Arbeitsplatz belegt ist (R6).
|
|
71
|
+
|
|
72
|
+
**Die IDE** liest `.cursor/cli.json` nach der Herstellerdokumentation nicht – sie ist als Konfiguration der Kommandozeile beschrieben (`QU-2`). Hooks, Regeln, Skills und `.cursorignore` gelten laut Dokumentation für beide. **An einer IDE-Sitzung ist nichts davon gemessen** (`K-175`).
|
|
73
|
+
|
|
74
|
+
## 2. Fähigkeitsmatrix
|
|
75
|
+
|
|
76
|
+
Einstufung je Zusage: `[TECHNISCH]` erzwungen · `[TEXTUELL]` nur Anweisung · `[NICHT ABBILDBAR]` kein Mechanismus. Regeln in `../README.md` Abschnitt 4. Gemessen ist an der Kommandozeile unter Windows; eine Zeile, die die IDE betrifft, sagt es.
|
|
77
|
+
|
|
78
|
+
### R – Regelladung
|
|
79
|
+
|
|
80
|
+
| ID | Zusage des Frameworks | Mechanismus beim Client | Einstufung | Beleg |
|
|
81
|
+
|---|---|---|---|---|
|
|
82
|
+
| R1 | Wurzel-Anweisungsdatei wird ungefragt geladen | `AGENTS.md` steht in jeder Sitzung im Kontext | `[TECHNISCH]` | **gemessen** (2026-09-26): Kennwort aus `AGENTS.md` ohne Werkzeugaufruf genannt; im installierten Pack mit Pfad aufgezählt |
|
|
83
|
+
| R2 | Regeldateien mit Ladebedingungen | `.cursor/rules/*.mdc`, Frontmatter `alwaysApply` und `globs` | `[TECHNISCH]` | **gemessen:** `alwaysApply: true` lädt immer; die vier Regeln des Frameworks standen im installierten Pack im Kontext. 🔴 **Eine `.md`-Datei in der Ablage lädt nie** – die Regeln heißen deshalb `.mdc` (`QU-1`). `model_decision` bildet auf unbedingtes Laden ab – eine Verschärfung |
|
|
84
|
+
| R3 | Regeln an Dateimuster bindbar | `alwaysApply: false` mit `globs` als Liste | `[TECHNISCH]` | **gemessen mit Gegenprobe:** Eine Regel mit `**/*.xyz` stand nach dem Lesen von `probe.xyz` im Kontext, mit `**/*.abc` nicht |
|
|
85
|
+
| R4 | Bekanntes Zeichenlimit | **Vorgabe des Frameworks** – höchstens 40.000 Zeichen für das stets Geladene (D-387) | `[TEXTUELL]` | `[EMPF]`. Der Hersteller empfiehlt Regeln unter 500 Zeilen (`QU-1`); ein Limit ist nicht dokumentiert. Gemessen ist die Last: 13.612 Eingabetoken einer Sitzung mit installiertem Pack gegenüber 10.190 im Minimalbaum |
|
|
86
|
+
| R5 | Die geladenen Regelquellen sind vollständig aufzählbar | Keine Aufzählung des Clients in der Ausgabe; die Sitzung nennt ihre Quellen auf Nachfrage | `[TEXTUELL]` | **gemessen ist nur die Selbstauskunft** der Sitzung (Pfade aller fünf Träger). Eine Auskunft des Modells, keine des Clients |
|
|
87
|
+
| R6 | Keine Importe fremder Werkzeugformate | **Kein Schalter im Projekt.** Der Import von Claude Code (Hooks, Skills, `CLAUDE.md`) ist eine Einstellung der IDE mit Standard „an" | `[NICHT ABBILDBAR]` | **gemessen:** `CLAUDE.md` lud in jeder Sitzung; die Hooks aus `~/.claude/settings.json` liefen an der Kommandozeile mit. **Ersatz, geliefert:** die Meldung von `install.py` über belegte Quellen, einschließlich der nur global abschaltbaren Commit-Attribution, und der Nachschritt zur Einstellung der IDE (Abschnitt 7) |
|
|
88
|
+
|
|
89
|
+
### S – Skills
|
|
90
|
+
|
|
91
|
+
| ID | Zusage des Frameworks | Mechanismus beim Client | Einstufung | Beleg |
|
|
92
|
+
|---|---|---|---|---|
|
|
93
|
+
| S1 | Versionierte Skills im Repository | `.cursor/skills/<name>/SKILL.md` | `[TECHNISCH]` | **gemessen:** ein Skill der Ablage wurde gefunden und gelesen, auch mit den Frontmatter-Feldern des Frameworks |
|
|
94
|
+
| S2 | Gezielter Aufruf | `/<name>` in der Sitzung | `[TECHNISCH]` | `[DOK]` **`QU-4`**; gemessen ist nur der Aufruf beim Namen im Auftrag – die Sitzung las den Skill |
|
|
95
|
+
| S3 | Werkzeugbeschränkung je Skill | **Kein Feld.** `allowed-tools`, `permissions` und `triggers` werden angenommen und nicht ausgewertet | `[TEXTUELL]` | **gemessen:** Ein Skill mit `permissions: deny: [edit]` war geladen, und das Schreiben blieb im selben Lauf erlaubt. Was trägt, ist die globale Schicht |
|
|
96
|
+
| S4 | Schreibende Skills nur benutzergetriggert | `disable-model-invocation: true`, übersetzt aus `triggers` | `[TECHNISCH]` | `[DOK]` **`QU-4`**; `BELEG OFFEN` (2026-09-26): die Wirkung des Feldes ist nicht gemessen |
|
|
97
|
+
| S5 | Die geladenen Skills sind aufzählbar | Selbstauskunft der Sitzung | `[TEXTUELL]` | `BELEG OFFEN` (2026-09-26): Die Ausgabe ohne Rückfragen führt keine Liste der Skills |
|
|
98
|
+
|
|
99
|
+
### B – Berechtigungen
|
|
100
|
+
|
|
101
|
+
> **`[TECHNISCH]` heißt in diesem Block:** Der Client setzt die Regel durch, **auch im Betrieb, der Rückfragen überspringt** – gemessen: Jedes `deny` hielt mit `--force`. Für dieses Pack kommen **zwei gemessene Bedingungen** hinzu: **die Schreibweise der Pfadmuster** (Abschnitt 1b, Punkt 1) und **eine Datei, mit der der Client startet** (Punkt 2). Die Berechtigungsdatei ist eine Konfiguration der **Kommandozeile**; für die IDE ist sie nicht dokumentiert (`K-175`). **Die zweite Linie ist der Schutz-Hook, die dritte für Lesen und Suchen `.cursorignore`.**
|
|
102
|
+
|
|
103
|
+
Die mit **Kern** markierten Zeilen entsprechen den Kernzusagen der Kernquelle; Prüfung 97 hält die Datei gegen sie, weil die Datei sie nicht selbst auflisten darf.
|
|
104
|
+
|
|
105
|
+
| ID | Zusage des Frameworks | Kern | Mechanismus beim Client | Einstufung | Beleg |
|
|
106
|
+
|---|---|---|---|---|---|
|
|
107
|
+
| B1 | Berechtigungen versioniert im Repository | ja | `.cursor/cli.json` und `.cursorignore` im Projekt | `[TECHNISCH]` | **gemessen:** beide Träger liegen im Projekt und wirken ohne Schalter. Mit einem fremden Schlüssel oder kaputtem JSON startet der Client nicht (fail-closed) |
|
|
108
|
+
| B2 | Verweigern vor Rückfragen vor Erlauben | ja | `deny` vor `allow`; was kein `allow` deckt, fragt bei Befehlen zurück | `[TECHNISCH]` | **gemessen:** `deny` auf `.env` schlägt `allow` auf `Read(**)`. Einen Rückfragekorb gibt es nicht (B7) |
|
|
109
|
+
| B3 | Secret-Dateien per Pfadmuster lesegeschützt | ja | `deny Read` in zwei Schreibweisen **und** `.cursorignore` | `[TECHNISCH]` | **gemessen an einer realen Installation:** `.env` und `secrets/pw.txt` abgewiesen, `probe.txt` gelesen – mit der Berechtigungsdatei allein, ohne Hook. 🔴 **Das Suchwerkzeug beachtet das `Read`-Verbot nicht** (Köder aus `secrets/` gefunden); mit `.cursorignore` war die Suche ausgefiltert, und der Schutz-Hook sperrte sie ebenfalls. Groß- und Kleinschreibung unterscheidet das Muster, der Hook nicht |
|
|
110
|
+
| B4 | Framework- und Overlay-Artefakte schreibgeschützt | ja | `deny Write` auf `AGENTS.md`, `.cursor/**`, `.koolie/core/**`; `.cursorignore` schützt der Client selbst. **Das Overlay sperrt seit `1.17.0` allein der Schutz-Hook** (D-448); die Berechtigungsdatei führt es nicht mehr – nachgezählt an einer Installation am 2026-09-29 (D-468) | `[TECHNISCH]` | **gemessen:** Schreiben auf `AGENTS.md`, in `.koolie/core/` und `.cursor/rules/` abgewiesen, Löschen von `OVERLAY.md` abgewiesen (mit `1.16.0`, noch mit der statischen Sperre – über den Hook allein nicht nachgemessen), `neu.txt` angelegt. ⚠️ **Grenze, nicht gemessen:** ein freigegebener lesender `git`-Befehl mit schreibender Option (`git diff --output=<pfad>`) |
|
|
111
|
+
| B5 | CI-, Quality-Gate- und Lockdateien schreibgeschützt | ja | `deny Write` mit den Lockmustern und den Schlitzen `<CI_CONFIG_PATHS>`, `<QUALITY_GATE_CONFIG_PATHS>` | `[TECHNISCH]` | **gemessen am Mechanismus** (Pfadmuster im `deny`, B4); die Schlitze füllt der Overlay Owner in beiden Schreibweisen, die Lockmuster sind nicht einzeln angefahren |
|
|
112
|
+
| B6 | Befehle per Muster verweigerbar | ja | `deny Shell(git push)` und die übrigen Befehlsverbote | `[TECHNISCH]` | **gemessen:** `git push origin main` abgewiesen, auch in `git status && git push origin main`; `rm probe.txt` abgewiesen. ⚠️ **Grenze wie bei allen Packs:** `git -C . push origin main` trifft das Muster nicht – es fiel in die **Rückfrage** und wurde ohne Rückfragekanal abgewiesen |
|
|
113
|
+
| B7 | Schreiboperationen fragen zurück | – | **Kein Rückfragekorb; Dateien im Arbeitsbereich schreibt der Client ohne Rückfrage** | `[NICHT ABBILDBAR]` | **gemessen:** `neu2.txt` angelegt, auch **ohne** `--force`; der Hersteller sagt es selbst (`QU-8`). **Ersatz:** die Schreibverbote (B4, B5), der Schutz-Hook und die Sichtprüfung im Merge Request – eine Rückfrage vor jedem Schreiben gibt es bei diesem Client nicht |
|
|
114
|
+
| B8 | Netzwerkzugriff standardmäßig unterbunden | – | `deny WebFetch(*)` und `deny Shell` auf `curl`, `wget`, `ssh`, `scp` | `[TECHNISCH]` für das Web-Werkzeug und diese vier Programme; `[TEXTUELL]` darüber hinaus | **gemessen:** `curl` abgewiesen; der Webabruf abgewiesen – ob durch das Verbot oder die Rückfrage, sagt die Meldung nicht. ⚠️ Jedes andere netzfähige Programm fragt zurück, ist aber nicht verboten |
|
|
115
|
+
| B9 | Nutzerlokale Konfiguration kann nur verschärfen | – | Die Projektdatei ersetzt die Listen der globalen Konfiguration; ein `deny` gilt in jedem Betriebsmodus | `[TECHNISCH]` | **gemessen:** das `deny` des Projekts hielt mit `--force`; die Ersetzung der Listen ist aus dem Programmcode. ⚠️ **Ein `deny` des Arbeitsplatzes gilt in diesem Projekt nicht mehr**, und die globale Einstellung `approvalMode: unrestricted` überspringt die Rückfragen (M2) |
|
|
116
|
+
| B10 | Externer Abruf auf freigegebene Domains beschränkbar | – | `WebFetch(<domain>)` | `[TECHNISCH]` | `[DOK]` **`QU-2`**. Das Framework nutzt die strengste Form – alles verboten (B8, D-59) |
|
|
117
|
+
|
|
118
|
+
### H – Hooks
|
|
119
|
+
|
|
120
|
+
| ID | Zusage des Frameworks | Mechanismus beim Client | Einstufung | Beleg |
|
|
121
|
+
|---|---|---|---|---|
|
|
122
|
+
| H1 | Prüfung vor Werkzeugausführung | `preToolUse` in `.cursor/hooks.json`, Matcher als regulärer Ausdruck über die Werkzeugnamen, seit `1.20.0` mit `MCP:.*`. Bei einem MCP-Werkzeug prüft der Hook den Inhalt gegen die Secret-Muster und die Pfadfelder gegen die Secret-Pfade (D-486); jede Entscheidung steht in `.git/koolie-hook.jsonl`, ohne Inhalt und Pfad (D-487) | `[TECHNISCH]` | **gemessen:** Der Hook läuft bei jedem Lese-, Such-, Schreib-, Lösch- und Shell-Aufruf, **auch ohne Rückfragen**. Bedingungen: ein vertrauter Arbeitsbereich und unter Windows ein Start ohne `SHELL` (Abschnitt 1b). **MCP gemessen am 2026-09-29** (2026.09.28, `tests/protocols/2026-09-29-schutzschicht.md`): Ein MCP-Aufruf löst `preToolUse` aus, `tool_name` ist `MCP:<werkzeug>`; ohne den Matcher erreichte ein Köderwert den Server, mit ihm sperrte der Hook, und eine harmlose Notiz kam an. Daneben feuert `beforeMCPExecution`, das der Hook nicht braucht |
|
|
123
|
+
| H2 | Prüfung kann **blockieren** | `{"permission": "deny"}` und Exit 2; beim Durchlass `{}`; `failClosed: true` | `[TECHNISCH]` | 🔴 **Gemessen, und der schwerste Befund des Hooks** (D-441): Exit 2 sperrt – aber ohne `failClosed` lässt ein Hook, der scheitert, die Operation **durch**, und mit `failClosed` wertet der Client einen Hook **ohne Ausgabe** als gescheitert: Er sperrte jede Operation, auch das Lesen von `probe.txt`. Mit der Form `permission-json` gesperrt: `.env` über Lese-, Such- und Shell-Werkzeug, `AGENTS.md`, `.koolie/core/`, `.cursor/rules/`, `OVERLAY.md`; durchgelassen: `probe.txt`. **Prüfung 86** misst beide Hälften |
|
|
124
|
+
| H3 | Statusmeldung beim Sitzungsstart | `sessionStart` mit `hook-overlay-status.py` | `[TECHNISCH]` | **gemessen:** Framework-Version und Overlay-Status standen wörtlich im Kontext, und die Sitzung arbeitete danach im Modus M1. Die Ausgabe in der Form von Claude Code (`hookSpecificOutput`) übersetzt der Client |
|
|
125
|
+
| H4 | Eingabeschema und Pfadidentität des Schutz-Hooks | Ereignisprüfung, Pfadfeld `file_path`, BOM-feste Eingabe, alle Muster ohne Rücksicht auf Groß-/Kleinschreibung; `hook_fail_closed` steht auf `true`. **Grenze:** Ein Hook prüft **vor** dem Zugriff (D-397) | `[TECHNISCH]` für die Musterprüfung, **mit der Zeitlücke** | **gemessen:** das Schema von `preToolUse` für fünf Werkzeuge. 🔴 **Die Eingabe beginnt unter Windows mit einem UTF-8-BOM** – der Hook scheiterte daran, bis er sie als UTF-8 mit BOM las (D-441). ⚠️ Das Dateinamenwerkzeug `Glob` löst keinen Hook aus; es liefert Namen, keine Inhalte |
|
|
126
|
+
|
|
127
|
+
### A – Agentenprofile
|
|
128
|
+
|
|
129
|
+
| ID | Zusage des Frameworks | Mechanismus beim Client | Einstufung | Beleg |
|
|
130
|
+
|---|---|---|---|---|
|
|
131
|
+
| A1 | Rein lesendes Reviewprofil | `.cursor/agents/fw-reviewer.md` mit `readonly: true` | `[TECHNISCH]` | `[DOK]` **`QU-5`** (*„no file edits, no state-changing shell commands"*); `BELEG OFFEN` (2026-09-26): Der Start eines Subagenten ist nicht gemessen |
|
|
132
|
+
| A2 | Rein lesendes Analyseprofil für Modus M1 | Modus `ask` (`--mode ask`, *„read-only"*) | `[TEXTUELL]` | `[DOK]` **`QU-6`**; `BELEG OFFEN` (2026-09-26) für seine Wirkung |
|
|
133
|
+
|
|
134
|
+
### M – Modi und Sitzungsfreigaben
|
|
135
|
+
|
|
136
|
+
| ID | Zusage des Frameworks | Mechanismus beim Client | Einstufung | Beleg |
|
|
137
|
+
|---|---|---|---|---|
|
|
138
|
+
| M1 | Standardmodus fragt bei Schreiben und Befehlen zurück | Befehle außerhalb von `allow` fragen zurück; **Schreiben im Arbeitsbereich nicht** | `[NICHT ABBILDBAR]` für das Schreiben, `[TECHNISCH]` für Befehle | **gemessen:** ohne Rückfragekanal wurden `python --version` und `git log` abgewiesen, `neu2.txt` angelegt. **Ersatz:** wie B7 |
|
|
139
|
+
| M2 | Modus ohne Rückfragen ausschließbar | **Kein Ausschluss.** `--force` (`--yolo`) und die globale Einstellung `approvalMode: unrestricted` überspringen Rückfragen; ein `deny` gilt weiter | `[TEXTUELL]` | **gemessen:** jedes `deny` hielt mit `--force`. Das ist mehr als bei den meisten Packs, aber keine Sperre des Modus |
|
|
140
|
+
| M3 | Freigabe auf die Sitzung begrenzbar | Die Freigabe einer Rückfrage kann in die Freigabeliste übernommen werden | `[TEXTUELL]` | `BELEG OFFEN` (2026-09-26): Eine Rückfrage an einen Menschen ist ohne Rückfragekanal nicht messbar. ⚠️ Nach dem Programmcode schreibt die Übernahme in die Konfiguration – über die Sitzung hinaus |
|
|
141
|
+
| M4 | Eigener Planungsmodus für Modus M2 | Modus `plan` (`--plan`); der Plan geht an ein eigenes Werkzeug und liegt **nicht im Repositorium** | `[TEXTUELL]` | **gemessen:** Die Sitzung las, schrieb nichts und legte einen Plan mit leerer Ablageadresse an. Der Träger des Plans ist deshalb die Planvorlage des Kerns (`fw-plan`); anders als bei `kiro` liefert das Pack keine Regel für ein clienteigenes Planartefakt |
|
|
142
|
+
| M6 | Modus mit selbsttätiger Übernahme von Dateiänderungen begrenzbar | Änderungen im Arbeitsbereich übernimmt der Client **immer** selbsttätig | `[NICHT ABBILDBAR]` | **gemessen** (B7) und `[DOK]` **`QU-8`** (*„Changes save immediately to disk"*). **Ersatz:** wie B7 |
|
|
143
|
+
| M7 | Modus, der selbst beurteilt, was sicher ist, begrenzbar | `--auto-review` und `approvalMode: auto-review` (ein Klassifikator des Anbieters) | `[TEXTUELL]` | `[DOK]` **`QU-2`**; `BELEG OFFEN` (2026-09-26) für seine Begrenzbarkeit. Der Hersteller nennt die Modi *„best-effort guardrails rather than a hard security boundary"* (`QU-8`) |
|
|
144
|
+
|
|
145
|
+
### X – Externe Anbindung
|
|
146
|
+
|
|
147
|
+
| ID | Zusage des Frameworks | Mechanismus beim Client | Einstufung | Beleg |
|
|
148
|
+
|---|---|---|---|---|
|
|
149
|
+
| X1 | Keine externe Anbindung ohne Einzelfreigabe | Jeder MCP-Server und jeder Werkzeugaufruf braucht eine Freigabe; das Framework liefert keinen Server aus | `[TECHNISCH]` | `[DOK]` **`QU-8`**; **gemessen am 2026-09-28** (D-459, D-462): `Mcp(<server>:<werkzeug>)` in `allow` lässt ein Lesewerkzeug durch; ein Schreibwerkzeug ohne `allow` wird im Druckmodus abgewiesen (*User rejected*) – die Regelschicht hatte es im ersten Versuch schon verweigert, der zweite mit Freigabe im Overlay erreichte die technische Schranke. ⚠️ `--approve-mcps` überspringt die Freigabe des **Servers**, nicht die des Werkzeugs |
|
|
150
|
+
| X2 | Art und Ort der Codebasis-Indexierung bekannt | Kein Mechanismus zur Steuerung bekannt | `[NICHT ABBILDBAR]` | `BELEG OFFEN (dauerhaft)` – von außen nicht zu beobachten (`K-20`, D-292). **Kein Ersatz durch das Framework.** Dokumentiert ist der Privacy Mode (`QU-7`); auf dem Messkonto war er eingeschaltet |
|
|
151
|
+
|
|
152
|
+
## 3. Zusammenfassung der Durchsetzungstiefe
|
|
153
|
+
|
|
154
|
+
> **Zählregel (normativ für diese Tabelle):** Eine Zeile zählt bei ihrer **schwächsten** Einstufung (D-47). Prüfung 31 rechnet die Summen aus der Matrix nach.
|
|
155
|
+
|
|
156
|
+
| Klasse | Anzahl | davon Kernzusagen |
|
|
157
|
+
|---|---|---|
|
|
158
|
+
| `[TECHNISCH]` | **20 von 35** | 6 von 6 (B1 bis B6) |
|
|
159
|
+
| `[TEXTUELL]` | **10 von 35** | 0 von 6 |
|
|
160
|
+
| `[NICHT ABBILDBAR]` | **5 von 35** | 0 von 6 |
|
|
161
|
+
|
|
162
|
+
**Belegstand:** `BELEG OFFEN` sagen **S4**, **S5**, **A1**, **A2**, **M3**, **M7** und **X1**, dazu **X2** dauerhaft. Gemessen ist an der Kommandozeile unter Windows; die Zeilen der IDE stehen auf der Dokumentation (`K-175`), die Schreibweise der Pfadmuster für macOS und Linux auf dem Programmcode (`K-176`).
|
|
163
|
+
|
|
164
|
+
## 4. Kernzusagen ohne technische Durchsetzung
|
|
165
|
+
|
|
166
|
+
**Keine.** Alle sechs Kernzusagen sind `[TECHNISCH]` – unter den Bedingungen aus Abschnitt 1b, die in der Vorbemerkung des B-Blocks stehen, weil sie keine Zeile einzeln betreffen.
|
|
167
|
+
|
|
168
|
+
## 5. Bekannte Abweichungen im Verhalten
|
|
169
|
+
|
|
170
|
+
- **Die Berechtigungsdatei trägt nur `permissions`** (`permissions_format` `cursor-json`, D-440). Sie ist JSON mit Regeln der Gestalt `Typ(Muster)`, aber ohne `_core_rules_integrity`, ohne `ask` und mit einer eigenen Musterschreibweise. Deshalb erreichen dieses Pack nicht: **Prüfung 2**, **Prüfung 37**, **Prüfung 42**, **Prüfung 43**, **Prüfung 54** und **Prüfung 72**; nur zum Teil **Prüfung 59** und **Prüfung 89** (ihr Gegenstand (c), die Pfade des Overlays im `deny`, entfällt). An ihre Stelle tritt die Prüfung der Berechtigungsdatei gegen die Kernquelle (Abschnitt 1b, Punkt 2). Der Prüfapparat hält diese Liste gegen seine eigene Liste der formatgebundenen Prüfungen.
|
|
171
|
+
- **Kein Rückfragekorb, und Schreiben im Arbeitsbereich fragt nicht zurück** (B7). Die Rückfrageregeln der Kernquelle erklärt das Manifest; die Befehlsschlitze des Overlays gehören nicht unter `allow`.
|
|
172
|
+
- **Jedes Pfadmuster steht zweimal** und ist breiter als das der Kernquelle (Abschnitt 1b). Ein Projekt, das einen eigenen Pfad sperrt, schreibt ihn ebenso: `Read(*/<pfad>)` und `Read(*\<pfad>)`. Der Validator warnt bei einem Pfadverbot, das nie trifft.
|
|
173
|
+
- **Die Lesesperre steht zweimal**, in der Berechtigungsdatei und in `.cursorignore` – die zweite, weil das Suchwerkzeug die erste nicht beachtet (D-443).
|
|
174
|
+
- **Der Schutz-Hook antwortet auch beim Durchlass** und liest seine Eingabe BOM-fest (D-441).
|
|
175
|
+
- **Regeldateien heißen `.mdc`**; eigene Regeln des Projekts ebenso (`rule_file_ext`).
|
|
176
|
+
- **Die Commit-Attribution lässt sich nur global abschalten** (`attribution.attributeCommitsToAgent` in `~/.cursor/cli-config.json`). Gemessen: Mit dem Standard hängte die Sitzung jedem Commit `Co-authored-by: Cursor <…>` an – gegen Q5; mit `false` nicht.
|
|
177
|
+
|
|
178
|
+
## 6. Installation und Prüfung
|
|
179
|
+
|
|
180
|
+
```text
|
|
181
|
+
python .koolie/core/install.py --target /pfad/zum/projekt --client cursor
|
|
182
|
+
python .koolie/core/tests/scripts/validate-framework.py
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
🔴 **Danach:** Unter Windows die Kommandozeile aus PowerShell oder `cmd` starten, nicht aus Git Bash. Beim ersten Start dem Arbeitsbereich vertrauen. Die Commit-Attribution global auf `false` setzen. Den Import fremder Konfigurationen in der IDE prüfen. `install.py` nennt diese Schritte nach der Installation und meldet belegte fremde Quellen; nach jeder Hebung nennt es, dass `.cursor/cli.json` und `.cursorignore` Saat sind und nicht angefasst werden.
|
|
186
|
+
|
|
187
|
+
Vor der ersten produktiven Nutzung sind die Basistests des Testkatalogs gegen diesen Client zu fahren und zu protokollieren.
|
|
188
|
+
|
|
189
|
+
## 7. Anweisungs- und Konfigurationsquellen außerhalb des Projekts
|
|
190
|
+
|
|
191
|
+
**Pflichtabschnitt** (D-34). Solche Quellen haben nach Regel 2.6 der Prioritätshierarchie **keine Ebene**.
|
|
192
|
+
|
|
193
|
+
**Erhebungsstand: 2026-09-26**, Kommandozeile `2026.09.26-dd393fe`, erhoben mit der Herstellerdokumentation (`QU-1` bis `QU-5`), dem Programmcode der Kommandozeile, Messläufen mit dem echten und einem leeren Benutzerprofil und `install.py` (`import_channels_report`).
|
|
194
|
+
|
|
195
|
+
### 7.1 Anweisungsquellen
|
|
196
|
+
|
|
197
|
+
| Quelle | Ladebedingung | Belegstatus | Maßnahme des Frameworks |
|
|
198
|
+
|---|---|---|---|
|
|
199
|
+
| `CLAUDE.md` der Projektwurzel | in jeder Sitzung neben `AGENTS.md` (Drittimport) | **gemessen** | Auskunft; `install.py` meldet die Datei |
|
|
200
|
+
| Hooks in `.claude/settings.json` und `~/.claude/settings.json` | in jeder Sitzung, neben den Hooks des Projekts (Drittimport) | **gemessen** – sie liefen mit, und unter Git Bash sperrten sie jede Operation | Auskunft; `install.py` meldet sie, wenn die Datei Hooks führt |
|
|
201
|
+
| `~/.claude/skills/`, `~/.codex/skills/`, `.claude/skills/`, `.codex/skills/` | in jeder Sitzung verfügbar (Drittimport) | `[DOK]` `QU-4` | Auskunft; `install.py` meldet sie |
|
|
202
|
+
| `~/.cursor/skills/`, `~/.agents/skills/`, `~/.cursor/agents/` | in jeder Sitzung verfügbar | `[DOK]` `QU-4`, `QU-5` | Auskunft; `install.py` meldet sie |
|
|
203
|
+
| Nutzerregeln und Teamregeln | in jeder Sitzung, in den Einstellungen gepflegt, keine Datei | `[DOK]` `QU-1` | **keine** – nicht aus dem Projekt erreichbar |
|
|
204
|
+
| Eingebaute Skills des Clients (`/create-rule`, `/review` …) | in jeder Sitzung zur Wahl | `[DOK]` `QU-4` | **keine** – nicht abschaltbar |
|
|
205
|
+
|
|
206
|
+
### 7.2 Konfigurationsquellen
|
|
207
|
+
|
|
208
|
+
| Quelle | Wirkung | Belegstatus |
|
|
209
|
+
|---|---|---|
|
|
210
|
+
| `~/.cursor/cli-config.json` | globale Konfiguration der Kommandozeile; ihre Listen **ersetzt** die Projektdatei. Führt `approvalMode`, `sandbox` und die **Commit-Attribution** | Programmcode; Attribution **gemessen** |
|
|
211
|
+
| `~/.cursor/hooks.json` | Hooks des Arbeitsplatzes; laufen neben denen des Projekts, ein `deny` gewinnt | `[DOK]` `QU-3` |
|
|
212
|
+
| `~/.cursor/mcp.json` | MCP-Server des Arbeitsplatzes | `[DOK]` `QU-2` |
|
|
213
|
+
| Hooks der Organisation (`C:\ProgramData\Cursor\hooks.json` und Entsprechungen) | höchste Priorität; ein `deny` gewinnt | `[DOK]` `QU-3` |
|
|
214
|
+
| `.cursor/cli.json` in einem **Elternverzeichnis** des Projekts | wird ebenfalls gelesen und eingemischt | Programmcode |
|
|
215
|
+
|
|
216
|
+
### 7.3 Was dieser Abschnitt nicht leistet
|
|
217
|
+
|
|
218
|
+
**Eine Auskunft ist keine Schranke**, und ein **Abwesenheitsbeleg altert**. Prüfung 19 prüft die Anwesenheit dieser Auskunft, nicht ihre Richtigkeit.
|
|
219
|
+
|
|
220
|
+
**Das Entscheidungsprotokoll des Schutz-Hooks ist kein Nachweis gegen den Agenten** (`K-200`, D-487): Es liegt unter `.git/`, der Agent kann es über die Shell ändern, und eine Eingabe, die der Hook nicht lesen kann, hinterlässt keine Zeile.
|
|
221
|
+
|
|
222
|
+
## 8. Änderungsverlauf
|
|
223
|
+
|
|
224
|
+
| Version | Datum | Änderung | Autor (Rolle) |
|
|
225
|
+
|---|---|---|---|
|
|
226
|
+
| 0.1.0 | 2026-09-26 | **Angelegt (`CR-2026-155`, D-440 bis D-443).** Das fünfte Client Pack, gebaut mit Zugang zum Client. **Die Berechtigungsdatei trägt nur `permissions`**, und **jedes Pfadmuster steht in zwei Schreibweisen**, weil der Client es mit dem absoluten Pfad vergleicht (D-440); **der Schutz-Hook antwortet auch beim Durchlass und liest BOM-fest** (D-441); **das Suchwerkzeug beachtet kein Leseverbot** – `.cursorignore` trägt es (D-443). **Prüfung 97** neu | `<FRAMEWORK_OWNER>` |
|
|
227
|
+
| 0.2.0 | 2026-09-28 | **Die MCP-Anbindung ist als Stichprobe gemessen** (`CR-2026-157`, D-459, D-462, D-463). Zeile MCP-Konfiguration: `${env:VARIABLE}` in der Kopfzeile, im Druckmodus nur mit `--approve-mcps`. Zeile X1: Freigabe je Werkzeug trägt, ein Schreibwerkzeug ohne `allow` wird abgewiesen. 🔴 Dabei gefunden: Die Hook-Eingabe kam mit **zwei** BOM; der Schutz-Hook entfernte eines und sperrte fail-closed jede Operation – berichtigt für alle Packs (D-463). Das Manifest führt `mcp_permission_rule` (Prüfung 101) | `<FRAMEWORK_OWNER>` |
|
|
228
|
+
| 0.2.1 | 2026-09-29 | Zeile B4 folgt dem Erzeugnis: Die Berechtigungsdatei sperrt das Overlay seit `1.17.0` nicht mehr, das tut allein der Schutz-Hook (D-448); die Zeile nannte die alte Sperre weiter (`CR-2026-158`, D-468) | `<FRAMEWORK_OWNER>` |
|
|
229
|
+
| 0.3.0 | 2026-09-29 | **MCP-Aufrufe erreichen den Schutz-Hook** (`CR-2026-162`, D-486, D-487, `K-184`, `K-192`). Manifest: `hook_tools.mcp` mit `MCP:.*` und `hook_mcp_prefixes`. Zeile H1: MCP über `preToolUse`, gemessen mit einem Köderserver, und das Entscheidungsprotokoll; Abschnitt 7.3: seine Grenze (`K-200`) | `<FRAMEWORK_OWNER>` |
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "Maschinenlesbare Pfad- und Semantikabbildung dieses Client Packs. Die menschenlesbare Fassung mit Faehigkeitsmatrix steht in CLIENT_PACK.md. Gemessen am 2026-09-26 mit cursor-agent 2026.09.26-dd393fe (Kommandozeile, Betrieb ohne Rueckfragen mit stream-json-Mitschrift) im Rahmen des Baus (CR-2026-155, tests/protocols/2026-09-26-bau-cursor.md); die IDE 3.22.7 ist installiert und an keiner Sitzung gemessen. VIER DINGE SIND HIER ANDERS ALS BEI DEN UEBRIGEN PACKS, und alle vier sind gemessen: (1) Die Berechtigungsdatei des Projekts traegt NUR den Schluessel permissions - jeder weitere laesst den Client nicht starten. (2) Ein Pfadmuster wird verankert gegen den ABSOLUTEN Pfad verglichen; jedes Muster steht deshalb in zwei Schreibweisen (/ und \\). (3) Es gibt keinen Rueckfragekorb, und Dateien im Arbeitsbereich schreibt der Client ohne Rueckfrage. (4) Die Hook-Eingabe beginnt unter Windows mit einem BOM, und ein durchsetzender Hook muss auch beim Durchlass antworten.",
|
|
3
|
+
"client": "cursor",
|
|
4
|
+
"runtime_dir": ".cursor",
|
|
5
|
+
"root_instruction_file": "AGENTS.md",
|
|
6
|
+
"permissions_file": ".cursor/cli.json",
|
|
7
|
+
"permissions_format": "cursor-json",
|
|
8
|
+
"_permissions_format_note": "Die vierte Ausgabeform (D-440): {\"permissions\": {\"allow\": [...], \"deny\": [...]}} mit Regeln der Gestalt Werkzeug(Muster). Warum nicht die erste Form: Mit den Schluesseln _comment und _core_rules_integrity brach der Client mit Exit 1 ab ('Unrecognized key(s) in object'), ebenso bei kaputtem JSON - fail-closed, gemessen am 2026-09-26. Die Kernregeln haelt Pruefung 97 gegen die Kernquelle. Die Projektdatei wird in die globale Konfiguration GEMISCHT, und Listen ERSETZEN dabei die globalen (Programmcode des Clients): Ein deny des Arbeitsplatzes gilt in diesem Projekt nicht mehr. Die Datei wird aus der Projektwurzel und jedem Elternverzeichnis bis zum Startverzeichnis gelesen.",
|
|
9
|
+
"ignore_file": ".cursorignore",
|
|
10
|
+
"_ignore_file_note": "Die zweite Lesesperre (D-443), gemessen am 2026-09-26 (tests/protocols/2026-09-26-bau-cursor.md, Lauf I1): Das Suchwerkzeug wertet ein Read-Verbot der Berechtigungsdatei nicht aus; .cursorignore sperrte Lesen und Suchen, auch in Unterordnern, in der Syntax von .gitignore und damit ohne die Trennerfrage. Erzeugt aus den Leseverboten der Kernquelle, als Saat: Das Projekt traegt <EXCLUDED_PATHS> hier ein. Der Client verbietet dem Agenten selbst, diese Datei zu schreiben (Programmcode). Die Shell erreicht sie nicht - dort sperrt der Schutz-Hook.",
|
|
11
|
+
"rule_file_ext": ".mdc",
|
|
12
|
+
"_rule_file_ext_note": "Der Client laedt aus .cursor/rules/ nur .mdc-Dateien - gemessen am 2026-09-26: das Kennwort einer .md-Datei dort stand in keiner Sitzung im Kontext, das einer .mdc-Datei mit alwaysApply: true in jeder (QU-1). clientmap.regeldatei() bildet die Namen der Kernquellen ab.",
|
|
13
|
+
"skills_dir": ".cursor/skills",
|
|
14
|
+
"agents_dir": ".cursor/agents",
|
|
15
|
+
"pack_runtime_dir": ".cursor/rules",
|
|
16
|
+
"has_rule_triggers": true,
|
|
17
|
+
"core_skill_prefix": "fw-",
|
|
18
|
+
"core_paths": [
|
|
19
|
+
".cursor/README.md"
|
|
20
|
+
],
|
|
21
|
+
"seed_paths": [],
|
|
22
|
+
"project_owned_hint": [
|
|
23
|
+
".cursor/rules/2N-overlay-<name>.mdc (Overlay-Regelerweiterungen - Endung .mdc)",
|
|
24
|
+
".cursor/rules/40-tech-<name>.mdc (Packs ohne Quelle im Kern - Endung .mdc)",
|
|
25
|
+
".cursor/cli.json (Projektwerte, zusaetzliche deny-Regeln)",
|
|
26
|
+
".cursorignore (Projektpfade zum Ausschluss, zusaetzlich)",
|
|
27
|
+
".cursor/skills/prj-*/ (projektspezifische Skills)",
|
|
28
|
+
".koolie/project-overlay/tech-packs/** (projekteigene Packs)",
|
|
29
|
+
".koolie/project-overlay/** (das gesamte Overlay)"
|
|
30
|
+
],
|
|
31
|
+
"_post_steps_note": "Schritte, die install.py nach einer Installation und nach einer Hebung zusaetzlich nennt, weil ohne sie ein Teil des Packs nicht traegt - und nichts es meldet.",
|
|
32
|
+
"post_install_steps": [
|
|
33
|
+
"Unter Windows die Cursor-Kommandozeile aus PowerShell oder cmd starten, nicht aus Git Bash: Mit gesetzter Variable SHELL fuehrt der Client die Hook-Kommandos in bash aus, sie scheitern, und der Schutz-Hook sperrt dann JEDE Operation (CLIENT_PACK.md Abschnitt 1b).",
|
|
34
|
+
"Die Hooks laufen nur in einem vertrauten Arbeitsbereich: beim ersten Start in diesem Verzeichnis dem Arbeitsbereich vertrauen (Kommandozeile ohne Rueckfragen: --trust).",
|
|
35
|
+
"Die Commit-Attribution steht nur in der globalen Konfiguration (~/.cursor/cli-config.json, attribution.attributeCommitsToAgent) - fuer Q5 auf false setzen. Das Projekt kann sie nicht abschalten (CLIENT_PACK.md Zeile R6).",
|
|
36
|
+
"Den Import fremder Konfigurationen (Hooks und Skills aus .claude/ und ~/.claude/) in der IDE unter Settings, Agents, Third-Party Imports pruefen; install.py meldet, was davon auf diesem Arbeitsplatz belegt ist."
|
|
37
|
+
],
|
|
38
|
+
"post_update_steps": [
|
|
39
|
+
"install.py --update fasst .cursor/cli.json nicht an (Saat). Pruefung 97 meldet, wenn sie nicht mehr zur Kernquelle passt oder einen Schluessel traegt, mit dem der Client nicht startet."
|
|
40
|
+
],
|
|
41
|
+
"runtime_placeholders": {
|
|
42
|
+
"<RUNTIME_DIR>": ".cursor",
|
|
43
|
+
"<ROOT_INSTRUCTION_FILE>": "AGENTS.md",
|
|
44
|
+
"<ROOT_INSTRUCTION_LOCAL>": "AGENTS.local.md",
|
|
45
|
+
"<PERMISSIONS_FILE>": ".cursor/cli.json",
|
|
46
|
+
"<SKILLS_DIR>": ".cursor/skills",
|
|
47
|
+
"<RULES_DIR>": ".cursor/rules",
|
|
48
|
+
"<AGENTS_DIR>": ".cursor/agents",
|
|
49
|
+
"<HOOKS_FILE>": ".cursor/hooks.json",
|
|
50
|
+
"<MCP_FILE>": ".cursor/mcp.json",
|
|
51
|
+
"<CLIENT_NAME>": "Cursor"
|
|
52
|
+
},
|
|
53
|
+
"_runtime_placeholders_note": "<ROOT_INSTRUCTION_LOCAL> ist bei diesem Client KEIN Mechanismus - der Hersteller dokumentiert keine nutzerlokale Wurzel-Anweisung, und das Pack liefert keine Beispieldatei aus. Der Name steht hier, weil die Kernquelle ein Schreibverbot auf ihn fuehrt. Gemessen ist dagegen, dass der Client CLAUDE.md der Projektwurzel mitlaedt (Drittimport, Zeile R6).",
|
|
54
|
+
"root_instruction_local_absent": true,
|
|
55
|
+
"_root_instruction_local_absent_note": "Das Hauptdokument erklaert an der Stelle der persoenlichen Ergaenzungsdatei, dass es sie bei diesem Pack nicht gibt (build/assemble.py, lokale_ergaenzung).",
|
|
56
|
+
"permission_tools": {
|
|
57
|
+
"read": [
|
|
58
|
+
"Read"
|
|
59
|
+
],
|
|
60
|
+
"search": [],
|
|
61
|
+
"write": [
|
|
62
|
+
"Write"
|
|
63
|
+
],
|
|
64
|
+
"exec": [
|
|
65
|
+
"Shell"
|
|
66
|
+
],
|
|
67
|
+
"fetch": [
|
|
68
|
+
"WebFetch"
|
|
69
|
+
],
|
|
70
|
+
"mcp": [
|
|
71
|
+
"Mcp"
|
|
72
|
+
],
|
|
73
|
+
"skill": []
|
|
74
|
+
},
|
|
75
|
+
"_permission_tools_note": "Die Regeltypen des Clients (QU-2): Shell, Read, Write, WebFetch, Mcp. search ist leer: Der Client kennt keinen Suchtyp, und die Kernquelle gibt Suchen nur frei - gemessen am 2026-09-26: Das Suchwerkzeug wertet ein Read-Verbot NICHT aus (der Koeder aus secrets/ kam heraus); diesen Kanal haelt allein der Schutz-Hook (H2). skill ist leer: Ein Aufruf eines Skills ist bei diesem Client kein Werkzeug mit Berechtigung - ein Skill ist eine Datei, die gelesen wird. Beide Verben stehen in der Kernquelle nur unter allow; ihr Weglassen faellt auf den strengeren Standard zurueck. Write deckt das Loeschwerkzeug mit - gemessen: ein Write-Verbot auf keep.txt wies das Loeschen ab.",
|
|
76
|
+
"mcp_permission_rule": {"werkzeug": "Mcp({server}:{werkzeug})", "pauschal": null, "rueckfrage_schlaegt_freigabe": false},
|
|
77
|
+
"_mcp_permission_rule_note": "Die Regelform eines MCP-Werkzeugs in .cursor/cli.json (Pruefung 101, D-459). Gemessen am 2026-09-28 mit cursor-agent 2026.09.26 (Stichprobe zu 1.18.0): Mcp(<server>:<werkzeug>) in allow laesst ein Lesewerkzeug durch; ein Schreibwerkzeug ohne allow wird im Druckmodus abgewiesen (\"User rejected\"). Es gibt keine pauschale Rueckfrage in der Datei - der Client fragt von sich aus. Im Druckmodus laedt ein Server der Projektdatei nur mit --approve-mcps; agent mcp enable allein genuegte nicht.",
|
|
78
|
+
"permission_tools_bare": [],
|
|
79
|
+
"permission_path_prefix": "",
|
|
80
|
+
"permission_exec_match": "prefix",
|
|
81
|
+
"permission_exec_suffix": "",
|
|
82
|
+
"_permission_exec_note": "Die Befehlsseite vergleicht das Muster mit dem Befehl ODER seinem Anfang gefolgt von einem Leerzeichen (Programmcode, matchesShell): 'Shell(git push)' sperrt 'git push origin main' - gemessen, auch in 'git status && git push origin main', weil der Client verkettete Befehle zerlegt. Die Praefixform der Kernquelle braucht deshalb kein Suffix. Grenze wie bei allen Packs: 'git -C . push origin main' trifft das Muster nicht - es faellt in die Rueckfrage (gemessen: ohne Rueckfragekanal abgewiesen), weil kein allow es deckt.",
|
|
83
|
+
"permission_ask_ohne_korb": {
|
|
84
|
+
"write": "Kein Rueckfragekorb, und Dateien IM Arbeitsbereich schreibt der Client ohne Rueckfrage - gemessen am 2026-09-26, auch ohne --force. Die Rueckfrage vor dem Schreiben ist deshalb NICHT ABBILDBAR (Zeile B7); was bleibt, sind die Schreibverbote (B4, B5), der Schutz-Hook und die Sichtpruefung im Merge Request.",
|
|
85
|
+
"exec": "Ein Befehl, den kein allow deckt, faellt in die Rueckfrage des Clients (approvalMode allowlist) - gemessen: ohne Rueckfragekanal abgewiesen. Das ist die Wirkung der Rueckfrageregel, ohne dass sie in der Datei steht; die Befehlsschlitze des Overlays gehoeren deshalb NICHT unter allow.",
|
|
86
|
+
"mcp": "Ein MCP-Werkzeug braucht die Freigabe seines Servers (QU-2, --approve-mcps ueberspringt sie). Das Framework liefert keinen Server aus."
|
|
87
|
+
},
|
|
88
|
+
"permissions_extra": {},
|
|
89
|
+
"settings_extra": {},
|
|
90
|
+
"_settings_extra_note": "Ausdrueckliche Abwesenheit, keine Luecke (D-155): Die Projektdatei darf keinen Schluessel neben permissions tragen - der Client startet sonst nicht (D-440). Die Einstellung, die das Framework gern setzte (attribution.attributeCommitsToAgent: false, Q5), steht nur in der globalen Konfiguration; install.py meldet sie (import_channels_report).",
|
|
91
|
+
"hooks_format": "cursor-v1",
|
|
92
|
+
"_hooks_format_note": "Gemessen am 2026-09-26: .cursor/hooks.json mit {version: 1, hooks: {ereignis: [...]}}; die Ereignisse heissen klein (hook_event_names); der Matcher ist ein regulaerer Ausdruck ueber den Werkzeugnamen; Zeitlimit in Sekunden. Die Hooks laufen AUCH im Betrieb ohne Rueckfragen (anders als bei kiro), in einem vertrauten Arbeitsbereich. Unter Windows reicht der Client die Eingabe durch eine PowerShell-Huelle weiter - mit gesetzter Variable SHELL (Git Bash) laeuft diese Huelle in bash und scheitert.",
|
|
93
|
+
"hook_event_names": {
|
|
94
|
+
"PreToolUse": "preToolUse",
|
|
95
|
+
"SessionStart": "sessionStart"
|
|
96
|
+
},
|
|
97
|
+
"hook_block_form": "permission-json",
|
|
98
|
+
"_hook_block_form_note": "Die vierte Sperrform (D-441), gemessen am 2026-09-26: Exit 2 sperrt (die Standardform sperrte ebenfalls). ABER: Ein Hook, der scheitert, laesst die Operation standardmaessig DURCH; das Pack setzt deshalb failClosed - und dann wertet der Client einen Hook OHNE AUSGABE als gescheitert und sperrte jede Operation, auch das Lesen einer harmlosen Datei. Die Form permission-json antwortet beim Durchlass mit '{}' und sperrt mit permission deny und Exit 2. Gemessen: .env ueber Lese-, Such- und Shell-Werkzeug gesperrt, AGENTS.md und .cursor/ gegen Schreiben gesperrt, probe.txt gelesen, neu.txt angelegt.",
|
|
99
|
+
"hook_tools": {
|
|
100
|
+
"read": [
|
|
101
|
+
"Read"
|
|
102
|
+
],
|
|
103
|
+
"search": [
|
|
104
|
+
"Grep"
|
|
105
|
+
],
|
|
106
|
+
"exec": [
|
|
107
|
+
"Shell"
|
|
108
|
+
],
|
|
109
|
+
"write": [
|
|
110
|
+
"Write",
|
|
111
|
+
"Delete"
|
|
112
|
+
],
|
|
113
|
+
"mcp": [
|
|
114
|
+
"MCP:.*"
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
"hook_mcp_prefixes": ["MCP:"],
|
|
118
|
+
"_hook_mcp_note": "Gemessen am 2026-09-29 an cursor-agent 2026.09.28 (Messreihe 1.20.0, K-184, D-486): Ein MCP-Aufruf loest preToolUse aus, tool_name ist MCP:<werkzeug> (ohne Servername), tool_input das Argumentobjekt - dasselbe Ereignis und dieselbe Form wie fuer die uebrigen Werkzeuge. Daneben feuert beforeMCPExecution mit mcp_server_name und dem Inhalt als Zeichenkette; der Schutz-Hook braucht es nicht. Die Berechtigungsschicht weist einen MCP-Aufruf ohne Freigabe ab, auch mit --force ('User rejected MCP').",
|
|
119
|
+
"_hook_tools_note": "Die Werkzeugnamen der Hook-Eingabe, aufgezeichnet am 2026-09-26: Read, Grep, Shell, Write, Delete. Das Suchwerkzeug fuer Dateinamen (Glob) loest KEIN preToolUse aus - gemessen, und fuer Claude-Hooks sagt der Hersteller dasselbe ('Glob' not supported, QU-3); es liefert Dateinamen, keine Inhalte. Das Aendern einer Datei erscheint als Write mit dem ganzen neuen Inhalt.",
|
|
120
|
+
"hook_path_fields": [
|
|
121
|
+
"file_path"
|
|
122
|
+
],
|
|
123
|
+
"_hook_path_fields_note": "Aufgezeichnet am 2026-09-26: Read, Grep, Write und Delete fuehren file_path (absolut), Shell fuehrt command. cwd fehlt in der Eingabe oder ist leer; der Hook-Prozess steht in der Projektwurzel, und workspace_roots nennt sie.",
|
|
124
|
+
"hook_project_dir_expr": ".",
|
|
125
|
+
"_hook_project_dir_expr_note": "Der Hook-Prozess steht in der Projektwurzel - gemessen am 2026-09-26 (Arbeitsverzeichnis des Prozesses). CURSOR_PROJECT_DIR steht in der Umgebung, aber das Kommando laeuft unter Windows durch eine PowerShell-Huelle, in der $CURSOR_PROJECT_DIR eine Variable von PowerShell waere und leer bliebe.",
|
|
126
|
+
"hook_fail_closed": true,
|
|
127
|
+
"_hook_fail_closed_note": "Das Eingabeschema von preToolUse ist am 2026-09-26 aufgezeichnet: tool_name, tool_input, tool_use_id und der Umschlag des Clients (conversation_id, generation_id, model, cursor_version, workspace_roots, user_email, transcript_path, hook_event_name). failClosed steht in der Hook-Datei und --fail-closed im Kommando.",
|
|
128
|
+
"skill_frontmatter": {
|
|
129
|
+
"tools_format": "list",
|
|
130
|
+
"tool_names": {},
|
|
131
|
+
"_tool_names_note": "LEER, UND DAS IST DIE AUSSAGE: Kein Verb ist abgebildet, alle fuenf stehen in tool_names_unmapped. Der Hersteller dokumentiert fuer SKILL.md die Felder name, description, paths, disable-model-invocation, icon, color und metadata - kein Werkzeugfeld (QU-4).",
|
|
132
|
+
"tool_names_unmapped": [
|
|
133
|
+
"read",
|
|
134
|
+
"grep",
|
|
135
|
+
"glob",
|
|
136
|
+
"edit",
|
|
137
|
+
"exec"
|
|
138
|
+
],
|
|
139
|
+
"_tool_names_unmapped_note": "Gemessen am 2026-09-26 (tests/protocols/2026-09-26-bau-cursor.md, Lauf S1): Ein Skill mit den Feldern allowed-tools, triggers und permissions (deny: edit) des Frameworks wurde gefunden und gelesen - und das Schreiben blieb im selben Lauf erlaubt. Die Felder bleiben wirkungslos stehen; was einen Skill begrenzt, ist die globale Schicht (Zeile S3).",
|
|
140
|
+
"model_invocation_field": "disable-model-invocation",
|
|
141
|
+
"drop_fields": [],
|
|
142
|
+
"_drop_fields_note": "LEER, UND DAS IST DIE ENTSCHEIDUNG (Bauform wie kiro): Die zusagentragenden Felder erreichen die installierte Fassung unveraendert; der Client nimmt sie an und wertet sie nicht aus. Die Aussage 'nur benutzergetriggert' wird zusaetzlich in disable-model-invocation uebersetzt (QU-4)."
|
|
143
|
+
},
|
|
144
|
+
"shared_core": [
|
|
145
|
+
{
|
|
146
|
+
"src": "framework/runtime/root-instruction.md",
|
|
147
|
+
"dst": "<ROOT_INSTRUCTION_FILE>"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"src": "framework/runtime/rules/00-framework-core.md",
|
|
151
|
+
"dst": "<RULES_DIR>/00-framework-core.mdc"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"src": "framework/runtime/rules/10-privacy-security.md",
|
|
155
|
+
"dst": "<RULES_DIR>/10-privacy-security.mdc"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"src": "framework/runtime/rules/15-development-rules.md",
|
|
159
|
+
"dst": "<RULES_DIR>/15-development-rules.mdc"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"src": "framework/runtime/agents/fw-reviewer.md",
|
|
163
|
+
"dst": "<AGENTS_DIR>/fw-reviewer.md"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"src": "templates/rules/21-overlay-TEMPLATE.md.template",
|
|
167
|
+
"dst": "<RULES_DIR>/21-overlay-TEMPLATE.mdc.template"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"src": "templates/rules/40-tech-TEMPLATE.md.template",
|
|
171
|
+
"dst": "<RULES_DIR>/40-tech-TEMPLATE.mdc.template"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"src": "framework/runtime/hooks.json",
|
|
175
|
+
"dst": "<HOOKS_FILE>"
|
|
176
|
+
}
|
|
177
|
+
],
|
|
178
|
+
"_shared_core_note": "Keine Beispieldatei zur nutzerlokalen Wurzel-Anweisung (kein Mechanismus) und keine zur MCP-Konfiguration. 16-plan-spezifikation.md liefert dieses Pack NICHT aus: Der Planmodus des Clients legt seinen Plan nicht im Repositorium ab (gemessen: createPlan mit leerer planUri) - das Planartefakt ist das des Kerns.",
|
|
179
|
+
"shared_seed": [
|
|
180
|
+
{
|
|
181
|
+
"src": "framework/runtime/permissions.json",
|
|
182
|
+
"dst": "<PERMISSIONS_FILE>"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"src": "framework/runtime/permissions.json",
|
|
186
|
+
"dst": ".cursorignore"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"src": "framework/runtime/rules/20-project-overlay.md",
|
|
190
|
+
"dst": "<RULES_DIR>/20-project-overlay.mdc"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"src": "templates/project-overlay",
|
|
194
|
+
"dst": ".koolie/project-overlay"
|
|
195
|
+
}
|
|
196
|
+
],
|
|
197
|
+
"rule_frontmatter": "yaml",
|
|
198
|
+
"rule_triggers": {
|
|
199
|
+
"condition_field": "globs",
|
|
200
|
+
"condition_format": "list",
|
|
201
|
+
"allowed_fields": [
|
|
202
|
+
"alwaysApply",
|
|
203
|
+
"globs"
|
|
204
|
+
],
|
|
205
|
+
"map": {
|
|
206
|
+
"always_on": {
|
|
207
|
+
"condition": null,
|
|
208
|
+
"fixed": {
|
|
209
|
+
"alwaysApply": "true"
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
"model_decision": {
|
|
213
|
+
"condition": null,
|
|
214
|
+
"fixed": {
|
|
215
|
+
"alwaysApply": "true"
|
|
216
|
+
},
|
|
217
|
+
"hint": "Wird bei jedem Sitzungsstart geladen (`alwaysApply: true`). Dieser Client kennt einen Lademodus nach Beschreibung; das Pack nutzt ihn nicht, weil seine Wirkung nicht gemessen ist – gegenüber `model_decision` ist unbedingtes Laden eine Verschärfung, keine Lockerung."
|
|
218
|
+
},
|
|
219
|
+
"glob": {
|
|
220
|
+
"condition": "globs",
|
|
221
|
+
"from": "globs",
|
|
222
|
+
"fixed": {
|
|
223
|
+
"alwaysApply": "false"
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
"_rule_triggers_note": "Gemessen am 2026-09-26: Eine .mdc-Datei mit alwaysApply: true steht in jeder Sitzung im Kontext; eine mit alwaysApply: false und globs als YAML-Liste laedt, sobald eine passende Datei gelesen wird, und nicht bei einer unpassenden (Gegenprobe). Die Schreibweise als Zeichenkette wirkte ebenfalls; das Pack nutzt die Liste.",
|
|
229
|
+
"root_instruction_imports": [],
|
|
230
|
+
"agent_frontmatter": {
|
|
231
|
+
"tools_field": "tools",
|
|
232
|
+
"tools_format": "list",
|
|
233
|
+
"tool_names": {},
|
|
234
|
+
"tool_names_unmapped": [
|
|
235
|
+
"read",
|
|
236
|
+
"grep",
|
|
237
|
+
"glob",
|
|
238
|
+
"edit",
|
|
239
|
+
"exec"
|
|
240
|
+
],
|
|
241
|
+
"readonly_field": "readonly",
|
|
242
|
+
"_tool_names_note": "Ein Subagentenprofil dieses Clients kennt kein Werkzeugfeld, sondern readonly (QU-5: 'no file edits, no state-changing shell commands'). Ein Profil, dessen Werkzeugliste weder edit noch exec nennt, bekommt readonly: true, und die Liste entfaellt. Die Wirkung ist Gegenstand von Zeile A1.",
|
|
243
|
+
"_tool_names_unmapped_note": "Der Hersteller dokumentiert fuer ein Subagentenprofil kein Werkzeugfeld, sondern readonly (QU-5); die Verben werden deshalb nicht in Namen uebersetzt, sondern entscheiden allein, ob readonly: true gesetzt wird (readonly_field). Die Wirkung von readonly ist unerhoben - Zeile A1 sagt BELEG OFFEN."
|
|
244
|
+
},
|
|
245
|
+
"agent_start_tools": [
|
|
246
|
+
"Task"
|
|
247
|
+
],
|
|
248
|
+
"_agent_start_tools_note": "Der Hersteller nennt das Werkzeug, das einen Subagenten startet, Task (QU-5); das Ereignis subagentStart gilt ihm. Gemessen ist der Start nicht.",
|
|
249
|
+
"_import_control_note": "Kein Feld import_control, und das ist eine Aussage: Der Schalter fuer den Import fremder Konfigurationen ('Include Third-Party Plugins, Skills, and Other Configs', Standard an) ist eine Einstellung der IDE und nicht des Projekts; in der Konfiguration der Kommandozeile gibt es keinen (Programmcode). Gemessen am 2026-09-26: Die Hooks aus ~/.claude/settings.json des Arbeitsplatzes liefen in der Kommandozeile mit - und sperrten, weil sie unter diesem Client scheiterten, jede Shell- und Schreiboperation. CLAUDE.md der Projektwurzel lud in jeder Sitzung.",
|
|
250
|
+
"import_channels_intro": "Der Client laedt neben dem Projekt eigene Ablagen im Benutzerprofil und die Konfiguration von Claude Code (Drittimport, Standard an),",
|
|
251
|
+
"import_channels_report": [
|
|
252
|
+
{
|
|
253
|
+
"path": "~/.claude/settings.json",
|
|
254
|
+
"scope": "user",
|
|
255
|
+
"when": "json_key",
|
|
256
|
+
"key": "hooks",
|
|
257
|
+
"what": "Hooks von Claude Code - laufen in JEDER Cursor-Sitzung mit (gemessen); ein Hook, der dort scheitert, kann jede Operation sperren"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"path": "~/.claude/skills",
|
|
261
|
+
"scope": "user",
|
|
262
|
+
"when": "entries",
|
|
263
|
+
"what": "Skills von Claude Code - stehen in jeder Cursor-Sitzung zur Verfuegung"
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"path": "~/.codex/skills",
|
|
267
|
+
"scope": "user",
|
|
268
|
+
"when": "entries",
|
|
269
|
+
"what": "Skills von Codex - stehen in jeder Cursor-Sitzung zur Verfuegung"
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"path": "~/.agents/skills",
|
|
273
|
+
"scope": "user",
|
|
274
|
+
"when": "entries",
|
|
275
|
+
"what": "globale Skills im offenen Format - stehen in jeder Sitzung zur Verfuegung"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"path": "~/.cursor/skills",
|
|
279
|
+
"scope": "user",
|
|
280
|
+
"when": "entries",
|
|
281
|
+
"what": "globale Skills des Clients - stehen in jeder Sitzung zur Verfuegung"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"path": "~/.cursor/hooks.json",
|
|
285
|
+
"scope": "user",
|
|
286
|
+
"when": "exists",
|
|
287
|
+
"what": "Hooks des Arbeitsplatzes - laufen neben denen des Projekts; ein deny gewinnt"
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"path": "~/.cursor/agents",
|
|
291
|
+
"scope": "user",
|
|
292
|
+
"when": "entries",
|
|
293
|
+
"what": "globale Subagenten - stehen in jeder Sitzung zur Verfuegung"
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"path": "~/.cursor/mcp.json",
|
|
297
|
+
"scope": "user",
|
|
298
|
+
"when": "exists",
|
|
299
|
+
"what": "MCP-Server des Arbeitsplatzes"
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"path": "~/.cursor/cli-config.json",
|
|
303
|
+
"scope": "user",
|
|
304
|
+
"when": "json_not",
|
|
305
|
+
"key": "attribution.attributeCommitsToAgent",
|
|
306
|
+
"value": false,
|
|
307
|
+
"what": "Die Commit-Attribution ist NICHT abgeschaltet: Die Sitzung haengt jedem Commit 'Co-authored-by: Cursor' an (gemessen) - gegen Q5. Abhilfe: attribution.attributeCommitsToAgent auf false"
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"path": "CLAUDE.md",
|
|
311
|
+
"scope": "project",
|
|
312
|
+
"when": "exists",
|
|
313
|
+
"what": "Wurzel-Anweisung von Claude Code - laedt in jeder Cursor-Sitzung neben AGENTS.md (gemessen)"
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"path": ".claude/settings.json",
|
|
317
|
+
"scope": "project",
|
|
318
|
+
"when": "json_key",
|
|
319
|
+
"key": "hooks",
|
|
320
|
+
"what": "Hooks von Claude Code im Projekt - laufen in jeder Cursor-Sitzung mit; bei installiertem Pack claude-code also der Schutz-Hook zweimal"
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
"path": ".claude/skills",
|
|
324
|
+
"scope": "project",
|
|
325
|
+
"when": "entries",
|
|
326
|
+
"what": "Skills von Claude Code im Projekt - stehen in jeder Cursor-Sitzung zur Verfuegung"
|
|
327
|
+
}
|
|
328
|
+
],
|
|
329
|
+
"_import_channels_report_note": "Auskunft, keine Schranke (Bauform von D-411): install.py nennt nach Installation und Hebung, welche Quellen belegt sind. json_key meldet eine Datei, die den Schluessel fuehrt; json_not einen Wert, der nicht der genannte ist - auch einen fehlenden, weil dann der Standard des Clients gilt. Welche Wirkung jede Quelle hat, steht in Abschnitt 7 des Packs."
|
|
330
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Laufzeitschicht `.cursor/` – was hier liegt und wem es gehört
|
|
2
|
+
|
|
3
|
+
Diese Ablage ist die **Laufzeitform** des Frameworks für den Client `cursor`. Die kanonische, werkzeugneutrale Langform steht in `.koolie/core/framework/`; was hier liegt, ist daraus erzeugt (D-02). **Inhaltliche Änderungen gehören in den Kern und laufen als Änderungsantrag** (`.koolie/core/governance/CHANGE_REQUEST_TEMPLATE.md`).
|
|
4
|
+
|
|
5
|
+
## Was hier liegt
|
|
6
|
+
|
|
7
|
+
| Pfad | Inhalt | Wem es gehört |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| `../AGENTS.md` | Wurzel-Anweisung (Ebene 1); der Client lädt sie in jeder Sitzung | Framework |
|
|
10
|
+
| `rules/00-*.mdc`, `rules/10-*.mdc`, `rules/15-*.mdc` | Regeltexte des Frameworks (Ebene 3) mit `alwaysApply: true` – sie laden immer | Framework |
|
|
11
|
+
| `rules/20-project-overlay.mdc` | Laufzeitfassung des Project Overlays (Ebene 4) | Projekt |
|
|
12
|
+
| `rules/40-tech-*.mdc`, `rules/30-*.mdc` | Technology und Role Packs (Ebenen 5 und 6); eine an Dateimuster gebundene Regel trägt `alwaysApply: false` und `globs` | Projekt |
|
|
13
|
+
| `cli.json` | **Berechtigungen** des Frameworks, dazu die Projektwerte | Projekt (aus dem Kern erzeugt) |
|
|
14
|
+
| `hooks.json` | Schutz-Hook und Statusmeldung | Framework |
|
|
15
|
+
| `agents/fw-reviewer.md` | Nur lesender Review-Subagent (`readonly: true`) | Framework |
|
|
16
|
+
| `skills/fw-*/` | Skills des Frameworks | Framework |
|
|
17
|
+
|
|
18
|
+
## Vier Dinge, die bei diesem Client anders sind
|
|
19
|
+
|
|
20
|
+
**1. Regeldateien brauchen die Endung `.mdc`.** Eine `.md`-Datei in `rules/` lädt der Client nicht. Eigene Regeln des Projekts heißen deshalb `2N-overlay-<name>.mdc` und `40-tech-<name>.mdc`.
|
|
21
|
+
|
|
22
|
+
**2. `cli.json` trägt nur den Schlüssel `permissions`.** Jeder weitere Schlüssel – auch ein Kommentar – lässt den Client nicht starten; ebenso kaputtes JSON. Die Erklärung der Datei steht deshalb hier und nicht in ihr. Ein Pfadmuster steht **zweimal**, einmal mit `/` und einmal mit `\`: Der Client vergleicht es mit dem absoluten Pfad, und unter Windows trägt dieser Gegenschrägstriche. Wer einen Projektpfad sperrt (`<EXCLUDED_PATHS>`, `<READ_ONLY_PATHS>` …), trägt ihn ebenfalls in beiden Schreibweisen ein, mit führendem `*`: `Read(*/geheim/*)` und `Read(*\geheim\*)`.
|
|
23
|
+
|
|
24
|
+
**3. Dateien im Arbeitsbereich schreibt der Client ohne Rückfrage.** Es gibt keinen Rückfragekorb. Befehle, die kein `allow` deckt, fragen zurück; Schreiben nicht. Die Schreibverbote dieser Datei und der Schutz-Hook bleiben die Schranke, der Merge Request die Sichtprüfung.
|
|
25
|
+
|
|
26
|
+
**4. Die Hooks brauchen unter Windows den richtigen Start.** Aus PowerShell oder `cmd` gestartet, laufen sie; aus Git Bash gestartet (Variable `SHELL` gesetzt), scheitern sie – und der Schutz-Hook sperrt dann jede Operation. Sie laufen nur in einem Arbeitsbereich, dem der Client vertraut.
|
|
27
|
+
|
|
28
|
+
## Was hier **nicht** liegt
|
|
29
|
+
|
|
30
|
+
Keine Geheimnisse, keine Zugangsdaten, keine Kunden- oder Personennamen. Die Regeln dazu stehen in `rules/10-privacy-security.mdc`; der Validator prüft es, und der Schutz-Hook blockiert eine Werkzeugeingabe, die ein Muster dieser Kategorien trägt.
|
|
31
|
+
|
|
32
|
+
## Prüfen
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
python .koolie/core/tests/scripts/validate-framework.py --strict-overlay
|
|
36
|
+
```
|