@renoxar/koolie 1.25.0 → 2.0.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/.github/workflows/publish.yml +177 -0
- package/.koolie/QUELLREPOSITORIUM.md +9 -14
- package/.koolie/core/CHANGELOG.md +59 -0
- package/.koolie/core/LICENSE-HINWEIS.md +5 -6
- package/.koolie/core/OWNERS.md +2 -2
- package/.koolie/core/VERSION +1 -1
- package/.koolie/core/build/doc/00-kopf.md +6 -6
- package/.koolie/core/build/doc/01-executive-summary.md +8 -8
- package/.koolie/core/build/doc/03-ziele-nichtziele.md +2 -2
- package/.koolie/core/build/doc/04-geltungsbereich.md +4 -4
- package/.koolie/core/build/doc/05-glossar.md +3 -3
- package/.koolie/core/build/doc/07-architektur.md +2 -2
- package/.koolie/core/build/doc/07a-abbildungsschicht.md +9 -9
- package/.koolie/core/build/doc/08-trennung.md +3 -3
- package/.koolie/core/build/doc/09-betriebsmodi.md +8 -8
- package/.koolie/core/build/doc/15-referenzstruktur.md +56 -27
- package/.koolie/core/build/doc/16-agentenanweisung.md +2 -2
- package/.koolie/core/build/doc/20-referenz-skills.md +46 -46
- package/.koolie/core/build/doc/25-governance.md +9 -1
- package/.koolie/core/build/doc/26-qs-test.md +32 -3
- package/.koolie/core/build/doc/27-pilot.md +2 -2
- package/.koolie/core/build/doc/28-uebernahme.md +9 -1
- package/.koolie/core/build/doc/30-roadmap.md +3 -1
- package/.koolie/core/build/doc/31-anhaenge.md +1 -1
- package/.koolie/core/checklists/01-preflight.md +3 -3
- package/.koolie/core/checklists/02-privacy-context.md +1 -1
- package/.koolie/core/checklists/03-before-code-change.md +2 -2
- package/.koolie/core/checklists/04-review-ai-code.md +1 -1
- package/.koolie/core/checklists/05-testing.md +1 -1
- package/.koolie/core/checklists/06-security.md +1 -1
- package/.koolie/core/checklists/08-merge-request.md +1 -1
- package/.koolie/core/checklists/09-onboarding.md +2 -2
- package/.koolie/core/checklists/10-project-adoption.md +8 -8
- package/.koolie/core/checklists/11-framework-release.md +14 -14
- package/.koolie/core/clientmap.py +2 -2
- package/.koolie/core/clients/README.md +54 -52
- package/.koolie/core/clients/_template/CLIENT_PACK.md +19 -19
- package/.koolie/core/clients/claude-code/CLIENT_PACK.md +108 -164
- package/.koolie/core/clients/claude-code/manifest.json +5 -5
- package/.koolie/core/clients/claude-code/root-template/.claude/README.md +9 -9
- package/.koolie/core/clients/cursor/CLIENT_PACK.md +66 -60
- package/.koolie/core/clients/cursor/manifest.json +3 -3
- package/.koolie/core/clients/cursor/root-template/.cursor/README.md +3 -3
- package/.koolie/core/clients/devin-desktop/CLIENT_PACK.md +62 -64
- package/.koolie/core/clients/devin-desktop/manifest.json +5 -5
- package/.koolie/core/clients/devin-desktop/root-template/.devin/README.md +9 -9
- package/.koolie/core/clients/kiro/CLIENT_PACK.md +55 -48
- package/.koolie/core/clients/kiro/manifest.json +4 -4
- package/.koolie/core/clients/kiro/root-template/.kiro/README.md +3 -3
- package/.koolie/core/clients/openai-codex/CLIENT_PACK.md +98 -103
- package/.koolie/core/clients/openai-codex/manifest.json +3 -3
- package/.koolie/core/clients/openai-codex/root-template/.codex/README.md +2 -2
- package/.koolie/core/decision-trees/02-may-ai-do-task.md +2 -2
- package/.koolie/core/decision-trees/03-analyze-or-modify.md +12 -12
- package/.koolie/core/decision-trees/04-required-review.md +1 -1
- package/.koolie/core/docs/ADOPTION_GUIDE.md +281 -385
- package/.koolie/core/docs/DOCUMENTATION_STANDARD.md +44 -36
- package/.koolie/core/docs/PLACEHOLDER_REGISTRY.md +8 -8
- package/.koolie/core/docs/ROADMAP.md +34 -17
- package/.koolie/core/docs/RUNTIME_GLOSSARY.md +34 -35
- package/.koolie/core/examples/example-ergebnisbericht.md +1 -1
- package/.koolie/core/examples/example-mr-description.md +2 -2
- package/.koolie/core/framework/core/00-principles.md +1 -1
- package/.koolie/core/framework/core/01-governance.md +8 -8
- package/.koolie/core/framework/core/02-privacy.md +12 -12
- package/.koolie/core/framework/core/03-security.md +13 -11
- package/.koolie/core/framework/core/05-working-model.md +22 -22
- package/.koolie/core/framework/core/06-prompting-rules.md +5 -5
- package/.koolie/core/framework/core/07-review-rules.md +1 -1
- package/.koolie/core/framework/core/08-skill-conventions.md +11 -11
- package/.koolie/core/framework/core/09-risk-model.md +6 -6
- package/.koolie/core/framework/core/10-error-escalation.md +1 -1
- package/.koolie/core/framework/org-policies/MAPPING_CLASSIFICATION.md +1 -1
- package/.koolie/core/framework/overlay-patterns/general.md +63 -75
- package/.koolie/core/framework/role-packs/README.md +16 -28
- package/.koolie/core/framework/role-packs/_template/ROLE_PACK.md +3 -3
- package/.koolie/core/framework/role-packs/requirements-engineering/ROLE_PACK.md +23 -22
- package/.koolie/core/framework/role-packs/requirements-engineering/runtime/30-role-requirements-engineering.md +5 -5
- package/.koolie/core/framework/role-packs/requirements-engineering/skills/{role-re-ticket → koolie-ticket}/CHANGELOG.md +2 -1
- package/.koolie/core/framework/role-packs/requirements-engineering/skills/{role-re-ticket → koolie-ticket}/EXAMPLES.md +5 -5
- package/.koolie/core/framework/role-packs/requirements-engineering/skills/{role-re-ticket → koolie-ticket}/SKILL.md +9 -9
- package/.koolie/core/framework/role-packs/requirements-engineering/skills/koolie-ticket/TESTS.md +22 -0
- package/.koolie/core/framework/role-packs/software-development/ROLE_PACK.md +16 -16
- package/.koolie/core/framework/role-packs/software-development/runtime/30-role-software-development.md +1 -1
- package/.koolie/core/framework/runtime/agents/{fw-reviewer.md → koolie-reviewer.md} +2 -2
- package/.koolie/core/framework/runtime/permissions.json +13 -13
- package/.koolie/core/framework/runtime/root-instruction.md +5 -5
- package/.koolie/core/framework/runtime/rules/10-privacy-security.md +2 -2
- package/.koolie/core/framework/runtime/rules/15-development-rules.md +1 -1
- package/.koolie/core/framework/runtime/rules/16-plan-spezifikation.md +1 -1
- package/.koolie/core/framework/runtime/rules/20-project-overlay.md +2 -2
- package/.koolie/core/framework/skills/{fw-bugfix-prepare → koolie-bugfix-prepare}/CHANGELOG.md +2 -1
- package/.koolie/core/framework/skills/{fw-bugfix-prepare → koolie-bugfix-prepare}/EXAMPLES.md +8 -8
- package/.koolie/core/framework/skills/{fw-bugfix-prepare → koolie-bugfix-prepare}/SKILL.md +21 -21
- package/.koolie/core/framework/skills/koolie-bugfix-prepare/TESTS.md +15 -0
- package/.koolie/core/framework/skills/{fw-change-analyze → koolie-change-analyze}/CHANGELOG.md +2 -1
- package/.koolie/core/framework/skills/{fw-change-analyze → koolie-change-analyze}/EXAMPLES.md +6 -6
- package/.koolie/core/framework/skills/{fw-change-analyze → koolie-change-analyze}/SKILL.md +12 -12
- package/.koolie/core/framework/skills/koolie-change-analyze/TESTS.md +16 -0
- package/.koolie/core/framework/skills/{fw-change-small → koolie-change-small}/CHANGELOG.md +2 -1
- package/.koolie/core/framework/skills/{fw-change-small → koolie-change-small}/EXAMPLES.md +4 -4
- package/.koolie/core/framework/skills/{fw-change-small → koolie-change-small}/SKILL.md +15 -15
- package/.koolie/core/framework/skills/koolie-change-small/TESTS.md +13 -0
- package/.koolie/core/framework/skills/{fw-code-explain → koolie-code-explain}/CHANGELOG.md +2 -1
- package/.koolie/core/framework/skills/{fw-code-explain → koolie-code-explain}/EXAMPLES.md +4 -4
- package/.koolie/core/framework/skills/{fw-code-explain → koolie-code-explain}/SKILL.md +10 -10
- package/.koolie/core/framework/skills/koolie-code-explain/TESTS.md +11 -0
- package/.koolie/core/framework/skills/{fw-docs-update → koolie-docs-update}/CHANGELOG.md +2 -1
- package/.koolie/core/framework/skills/{fw-docs-update → koolie-docs-update}/EXAMPLES.md +3 -3
- package/.koolie/core/framework/skills/{fw-docs-update → koolie-docs-update}/SKILL.md +8 -8
- package/.koolie/core/framework/skills/koolie-docs-update/TESTS.md +12 -0
- package/.koolie/core/framework/skills/{fw-error-analyze → koolie-error-analyze}/CHANGELOG.md +2 -1
- package/.koolie/core/framework/skills/{fw-error-analyze → koolie-error-analyze}/EXAMPLES.md +6 -6
- package/.koolie/core/framework/skills/{fw-error-analyze → koolie-error-analyze}/SKILL.md +15 -15
- package/.koolie/core/framework/skills/koolie-error-analyze/TESTS.md +12 -0
- package/.koolie/core/framework/skills/{fw-mr-description → koolie-mr-description}/CHANGELOG.md +2 -1
- package/.koolie/core/framework/skills/{fw-mr-description → koolie-mr-description}/EXAMPLES.md +6 -6
- package/.koolie/core/framework/skills/{fw-mr-description → koolie-mr-description}/SKILL.md +8 -8
- package/.koolie/core/framework/skills/koolie-mr-description/TESTS.md +12 -0
- package/.koolie/core/framework/skills/{fw-overlay-pflege → koolie-overlay-pflege}/CHANGELOG.md +2 -1
- package/.koolie/core/framework/skills/{fw-overlay-pflege → koolie-overlay-pflege}/EXAMPLES.md +4 -4
- package/.koolie/core/framework/skills/{fw-overlay-pflege → koolie-overlay-pflege}/SKILL.md +8 -8
- package/.koolie/core/framework/skills/koolie-overlay-pflege/TESTS.md +13 -0
- package/.koolie/core/framework/skills/{fw-plan → koolie-plan}/CHANGELOG.md +2 -1
- package/.koolie/core/framework/skills/{fw-plan → koolie-plan}/EXAMPLES.md +7 -7
- package/.koolie/core/framework/skills/{fw-plan → koolie-plan}/SKILL.md +14 -14
- package/.koolie/core/framework/skills/koolie-plan/TESTS.md +14 -0
- package/.koolie/core/framework/skills/{fw-refactor → koolie-refactor}/CHANGELOG.md +2 -1
- package/.koolie/core/framework/skills/{fw-refactor → koolie-refactor}/EXAMPLES.md +4 -4
- package/.koolie/core/framework/skills/{fw-refactor → koolie-refactor}/SKILL.md +12 -12
- package/.koolie/core/framework/skills/koolie-refactor/TESTS.md +14 -0
- package/.koolie/core/framework/skills/{fw-repo-analyze → koolie-repo-analyze}/CHANGELOG.md +2 -1
- package/.koolie/core/framework/skills/{fw-repo-analyze → koolie-repo-analyze}/EXAMPLES.md +4 -4
- package/.koolie/core/framework/skills/{fw-repo-analyze → koolie-repo-analyze}/SKILL.md +8 -8
- package/.koolie/core/framework/skills/koolie-repo-analyze/TESTS.md +11 -0
- package/.koolie/core/framework/skills/{fw-review-support → koolie-review-support}/CHANGELOG.md +2 -1
- package/.koolie/core/framework/skills/{fw-review-support → koolie-review-support}/EXAMPLES.md +3 -3
- package/.koolie/core/framework/skills/{fw-review-support → koolie-review-support}/SKILL.md +7 -7
- package/.koolie/core/framework/skills/koolie-review-support/TESTS.md +13 -0
- package/.koolie/core/framework/skills/{fw-tests → koolie-tests}/CHANGELOG.md +2 -1
- package/.koolie/core/framework/skills/{fw-tests → koolie-tests}/EXAMPLES.md +5 -5
- package/.koolie/core/framework/skills/{fw-tests → koolie-tests}/SKILL.md +11 -11
- package/.koolie/core/framework/skills/koolie-tests/TESTS.md +12 -0
- package/.koolie/core/framework/tech-packs/README.md +2 -2
- package/.koolie/core/framework/tech-packs/_template/TECH_PACK.md +2 -2
- package/.koolie/core/governance/ADOPTION_REGISTRY.md +22 -58
- package/.koolie/core/governance/CHANGE_REQUEST_TEMPLATE.md +1 -1
- package/.koolie/core/governance/DECISION_LOG.md +7 -1
- package/.koolie/core/governance/EXCEPTION_PROCESS.md +1 -1
- package/.koolie/core/governance/FEEDBACK_PROCESS.md +1 -1
- package/.koolie/core/governance/FRAMEWORK_DEV_PROFILE.md +64 -66
- package/.koolie/core/governance/PRIORITY_HIERARCHY.md +13 -13
- package/.koolie/core/governance/RACI.md +3 -3
- package/.koolie/core/governance/RELEASE_PROCESS.md +101 -108
- package/.koolie/core/governance/change-requests/CR-2026-173-oeffentlicher-auftritt-koolie-praefix.md +67 -0
- package/.koolie/core/install.py +99 -0
- package/.koolie/core/koexistenz.py +2 -2
- package/.koolie/core/onboarding/GUIDE.md +7 -7
- package/.koolie/core/onboarding/KNOWLEDGE_CHECK.md +1 -1
- package/.koolie/core/onboarding/MENTOR_CHECKLIST.md +3 -3
- package/.koolie/core/onboarding/QUICKSTART.md +2 -2
- package/.koolie/core/onboarding/REFERENCE.md +14 -14
- package/.koolie/core/onboarding/exercises/EXERCISES.md +8 -8
- package/.koolie/core/onboarding/exercises/README.md +47 -65
- package/.koolie/core/pilot/PILOT_CONCEPT.md +1 -1
- package/.koolie/core/prompts/01-understand-codebase.md +11 -7
- package/.koolie/core/prompts/02-impact-analysis.md +17 -7
- package/.koolie/core/prompts/03-implementation-planning.md +10 -6
- package/.koolie/core/prompts/04-code-generation.md +11 -5
- package/.koolie/core/prompts/05-test-generation.md +13 -7
- package/.koolie/core/prompts/06-refactoring.md +14 -8
- package/.koolie/core/prompts/07-debugging.md +13 -11
- package/.koolie/core/prompts/08-security-review.md +2 -2
- package/.koolie/core/prompts/09-performance-analysis.md +2 -2
- package/.koolie/core/prompts/10-documentation.md +6 -4
- package/.koolie/core/prompts/11-merge-request-review.md +7 -5
- package/.koolie/core/prompts/12-developer-training.md +5 -3
- package/.koolie/core/prompts/README.md +17 -15
- package/.koolie/core/templates/MR_AI_DISCLOSURE.md +2 -2
- package/.koolie/core/templates/PLAN_TEMPLATE.md +2 -2
- package/.koolie/core/templates/SKILL_TEMPLATE.md +3 -3
- package/.koolie/core/templates/project-overlay/OVERLAY.md +28 -22
- package/.koolie/core/templates/project-overlay/documents/architecture/decisions/README.md +1 -1
- package/.koolie/core/tests/EDGE_CASES.md +4 -7
- package/.koolie/core/tests/TEST_CATALOG.md +33 -33
- package/.koolie/core/tests/protocols/2026-10-02-oeffentlicher-auftritt-2.0.0.md +42 -0
- package/.koolie/core/tests/scripts/hook-check-secrets.py +2 -2
- package/.koolie/core/tests/scripts/hook-overlay-status.py +1 -1
- package/.koolie/core/tests/scripts/probe-pruefungen.py +4 -2
- package/.koolie/core/tests/scripts/pruefungen/berechtigungen.py +7 -7
- package/.koolie/core/tests/scripts/pruefungen/bestand.py +20 -3
- package/.koolie/core/tests/scripts/pruefungen/dokumente.py +88 -0
- package/.koolie/core/tests/scripts/pruefungen/gemeinsam.py +1 -1
- package/.koolie/core/tests/scripts/pruefungen/hooks.py +1 -1
- package/.koolie/core/tests/scripts/pruefungen/overlay.py +5 -5
- package/.koolie/core/tests/scripts/pruefungen/testkatalog.py +5 -5
- package/.koolie/core/tests/scripts/pruefungen/werkzeuge.py +81 -2
- package/.koolie/core/tests/scripts/sonden/teil02_packs_mandat_mcp.py +6 -6
- package/.koolie/core/tests/scripts/sonden/teil03_pruefungen_26_bis_36.py +11 -11
- package/.koolie/core/tests/scripts/sonden/teil04_pruefungen_37_bis_45.py +11 -11
- package/.koolie/core/tests/scripts/sonden/teil05_pruefungen_46_bis_55.py +4 -4
- package/.koolie/core/tests/scripts/sonden/teil06_pruefungen_57_bis_65.py +33 -33
- package/.koolie/core/tests/scripts/sonden/teil07_overlay_und_lieferung.py +3 -3
- package/.koolie/core/tests/scripts/sonden/teil08_pruefungen_66_bis_80.py +3 -3
- package/.koolie/core/tests/scripts/sonden/teil10_pruefungen_83_bis_95.py +3 -3
- package/.koolie/core/tests/scripts/sonden/teil11_pruefungen_104_und_105.py +2 -2
- package/.koolie/core/tests/scripts/sonden/teil14_modi_ausnahmen_skills.py +1 -1
- package/.koolie/core/tests/scripts/sonden/teil16_koexistenz.py +5 -5
- package/.koolie/core/tests/scripts/sonden/teil17_paketquellen.py +33 -0
- package/.koolie/core/tests/scripts/sonden/teil19_skillnamen.py +97 -0
- package/.koolie/core/tests/scripts/sonden/teil20_kennungen.py +70 -0
- package/.koolie/core/tests/scripts/validate-framework.py +15 -6
- package/.koolie/core/tests/scripts/validate-output.py +1 -1
- package/CONTRIBUTING.md +16 -10
- package/QUICKSTART.en.md +44 -51
- package/QUICKSTART.md +44 -50
- package/package.json +2 -2
- package/paketquellen/README.md +11 -11
- package/.koolie/core/framework/role-packs/requirements-engineering/skills/role-re-ticket/TESTS.md +0 -22
- package/.koolie/core/framework/skills/fw-bugfix-prepare/TESTS.md +0 -15
- package/.koolie/core/framework/skills/fw-change-analyze/TESTS.md +0 -16
- package/.koolie/core/framework/skills/fw-change-small/TESTS.md +0 -13
- package/.koolie/core/framework/skills/fw-code-explain/TESTS.md +0 -11
- package/.koolie/core/framework/skills/fw-docs-update/TESTS.md +0 -12
- package/.koolie/core/framework/skills/fw-error-analyze/TESTS.md +0 -12
- package/.koolie/core/framework/skills/fw-mr-description/TESTS.md +0 -12
- package/.koolie/core/framework/skills/fw-overlay-pflege/TESTS.md +0 -13
- package/.koolie/core/framework/skills/fw-plan/TESTS.md +0 -14
- package/.koolie/core/framework/skills/fw-refactor/TESTS.md +0 -14
- package/.koolie/core/framework/skills/fw-repo-analyze/TESTS.md +0 -11
- package/.koolie/core/framework/skills/fw-review-support/TESTS.md +0 -13
- package/.koolie/core/framework/skills/fw-tests/TESTS.md +0 -12
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# Veroeffentlicht Koolie auf TestPyPI, PyPI und npm - ohne Token, ueber Trusted Publishing.
|
|
2
|
+
#
|
|
3
|
+
# Ausloeser ist nur eine Marke v<Version>. Die Marke muss vom Framework Owner signiert sein
|
|
4
|
+
# (geprueft gegen die Variable KOOLIE_ALLOWED_SIGNERS) und zu .koolie/core/VERSION passen.
|
|
5
|
+
# Ablauf: pruefen und bauen -> TestPyPI mit Installationsprobe -> nach Freigabe in der
|
|
6
|
+
# Umgebung "release" PyPI und npm. Scheitert ein Schritt, laeuft keiner danach.
|
|
7
|
+
# Einrichtung und Ablauf: .koolie/core/governance/RELEASE_PROCESS.md, Abschnitt 4.2, Schritt 9.
|
|
8
|
+
name: Veroeffentlichen
|
|
9
|
+
|
|
10
|
+
on:
|
|
11
|
+
push:
|
|
12
|
+
tags:
|
|
13
|
+
- "v*"
|
|
14
|
+
|
|
15
|
+
permissions:
|
|
16
|
+
contents: read
|
|
17
|
+
|
|
18
|
+
concurrency:
|
|
19
|
+
group: veroeffentlichen
|
|
20
|
+
cancel-in-progress: false
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
pruefen:
|
|
24
|
+
name: Marke pruefen und Pakete bauen
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
outputs:
|
|
27
|
+
version: ${{ steps.marke.outputs.version }}
|
|
28
|
+
steps:
|
|
29
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
30
|
+
with:
|
|
31
|
+
fetch-depth: 0
|
|
32
|
+
persist-credentials: false
|
|
33
|
+
|
|
34
|
+
- id: marke
|
|
35
|
+
name: Marke gegen VERSION und Signatur pruefen
|
|
36
|
+
env:
|
|
37
|
+
MARKE: ${{ github.ref_name }}
|
|
38
|
+
ERLAUBTE_SIGNIERER: ${{ vars.KOOLIE_ALLOWED_SIGNERS }}
|
|
39
|
+
run: |
|
|
40
|
+
set -euo pipefail
|
|
41
|
+
# Die annotierte Marke selbst holen; der Checkout legt sonst nur den Commit ab.
|
|
42
|
+
git fetch --force origin "refs/tags/${MARKE}:refs/tags/${MARKE}"
|
|
43
|
+
version="$(tr -d '\r\n' < .koolie/core/VERSION)"
|
|
44
|
+
if [ "${MARKE}" != "v${version}" ]; then
|
|
45
|
+
echo "::error::Marke ${MARKE} passt nicht zu VERSION ${version}"; exit 1
|
|
46
|
+
fi
|
|
47
|
+
if [ -z "${ERLAUBTE_SIGNIERER}" ]; then
|
|
48
|
+
echo "::error::Variable KOOLIE_ALLOWED_SIGNERS fehlt - ohne sie ist die Signatur nicht pruefbar"; exit 1
|
|
49
|
+
fi
|
|
50
|
+
printf '%s\n' "${ERLAUBTE_SIGNIERER}" > "${RUNNER_TEMP}/allowed_signers"
|
|
51
|
+
git config gpg.ssh.allowedSignersFile "${RUNNER_TEMP}/allowed_signers"
|
|
52
|
+
git tag -v "${MARKE}"
|
|
53
|
+
echo "version=${version}" >> "${GITHUB_OUTPUT}"
|
|
54
|
+
|
|
55
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
56
|
+
with:
|
|
57
|
+
python-version: "3.12"
|
|
58
|
+
|
|
59
|
+
- name: Archiv aus der Marke und Pakete bauen
|
|
60
|
+
env:
|
|
61
|
+
MARKE: ${{ github.ref_name }}
|
|
62
|
+
VERSION: ${{ steps.marke.outputs.version }}
|
|
63
|
+
run: |
|
|
64
|
+
set -euo pipefail
|
|
65
|
+
git -c core.eol=lf -c core.autocrlf=input -c tar.umask=022 archive \
|
|
66
|
+
--format=tar.gz --prefix="koolie-${VERSION}/" -o "koolie-${VERSION}.tar.gz" "${MARKE}"
|
|
67
|
+
python paketquellen/bauen.py --archiv "koolie-${VERSION}.tar.gz" --aus pakete
|
|
68
|
+
mkdir -p dist/pypi dist/npm
|
|
69
|
+
cp "pakete/koolie-${VERSION}-py3-none-any.whl" dist/pypi/
|
|
70
|
+
cp "pakete/koolie-${VERSION}.tgz" dist/npm/
|
|
71
|
+
cp pakete/SHA256SUMS dist/
|
|
72
|
+
cat dist/SHA256SUMS
|
|
73
|
+
|
|
74
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
75
|
+
with:
|
|
76
|
+
name: pakete
|
|
77
|
+
path: dist/
|
|
78
|
+
if-no-files-found: error
|
|
79
|
+
|
|
80
|
+
testpypi:
|
|
81
|
+
name: TestPyPI und Installationsprobe
|
|
82
|
+
needs: pruefen
|
|
83
|
+
runs-on: ubuntu-latest
|
|
84
|
+
environment:
|
|
85
|
+
name: testpypi
|
|
86
|
+
url: https://test.pypi.org/project/koolie/${{ needs.pruefen.outputs.version }}/
|
|
87
|
+
permissions:
|
|
88
|
+
id-token: write
|
|
89
|
+
steps:
|
|
90
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
91
|
+
with:
|
|
92
|
+
name: pakete
|
|
93
|
+
path: dist/
|
|
94
|
+
|
|
95
|
+
- uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
96
|
+
with:
|
|
97
|
+
repository-url: https://test.pypi.org/legacy/
|
|
98
|
+
packages-dir: dist/pypi/
|
|
99
|
+
skip-existing: true
|
|
100
|
+
|
|
101
|
+
- uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
|
|
102
|
+
|
|
103
|
+
- name: Aus TestPyPI in ein Wegwerfprojekt installieren
|
|
104
|
+
env:
|
|
105
|
+
VERSION: ${{ needs.pruefen.outputs.version }}
|
|
106
|
+
KOOLIE_NO_BANNER: "1"
|
|
107
|
+
run: |
|
|
108
|
+
set -euo pipefail
|
|
109
|
+
for i in $(seq 1 40); do
|
|
110
|
+
curl -fsS https://test.pypi.org/simple/koolie/ | grep -q "koolie-${VERSION}-py3" && break
|
|
111
|
+
sleep 15
|
|
112
|
+
done
|
|
113
|
+
projekt="${RUNNER_TEMP}/probe"
|
|
114
|
+
mkdir -p "${projekt}" && git -C "${projekt}" init -q
|
|
115
|
+
uvx --no-cache --index-url https://test.pypi.org/simple/ "koolie==${VERSION}" \
|
|
116
|
+
--target "${projekt}" --client claude-code | tee "${RUNNER_TEMP}/probe.txt"
|
|
117
|
+
grep -Eq "Zusammenfassung: [1-9][0-9]* angelegt" "${RUNNER_TEMP}/probe.txt"
|
|
118
|
+
[ "$(tr -d '\r\n' < "${projekt}/.koolie/core/VERSION")" = "${VERSION}" ]
|
|
119
|
+
echo "Probe bestanden: koolie ${VERSION} aus TestPyPI installiert"
|
|
120
|
+
|
|
121
|
+
veroeffentlichen:
|
|
122
|
+
name: PyPI und npm
|
|
123
|
+
needs: [pruefen, testpypi]
|
|
124
|
+
runs-on: ubuntu-latest
|
|
125
|
+
environment:
|
|
126
|
+
name: release
|
|
127
|
+
url: https://pypi.org/project/koolie/${{ needs.pruefen.outputs.version }}/
|
|
128
|
+
permissions:
|
|
129
|
+
id-token: write
|
|
130
|
+
steps:
|
|
131
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
132
|
+
with:
|
|
133
|
+
name: pakete
|
|
134
|
+
path: dist/
|
|
135
|
+
|
|
136
|
+
- uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
137
|
+
with:
|
|
138
|
+
packages-dir: dist/pypi/
|
|
139
|
+
skip-existing: true
|
|
140
|
+
|
|
141
|
+
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
|
142
|
+
with:
|
|
143
|
+
node-version: "24"
|
|
144
|
+
registry-url: https://registry.npmjs.org
|
|
145
|
+
|
|
146
|
+
- name: npm-Paket veroeffentlichen
|
|
147
|
+
env:
|
|
148
|
+
VERSION: ${{ needs.pruefen.outputs.version }}
|
|
149
|
+
run: |
|
|
150
|
+
set -euo pipefail
|
|
151
|
+
# Trusted Publishing braucht npm ab 11.5.1.
|
|
152
|
+
npm install -g npm@11
|
|
153
|
+
if npm view "@renoxar/koolie@${VERSION}" version >/dev/null 2>&1; then
|
|
154
|
+
echo "@renoxar/koolie@${VERSION} liegt schon auf npm - uebersprungen"
|
|
155
|
+
else
|
|
156
|
+
npm publish "dist/npm/koolie-${VERSION}.tgz" --access public
|
|
157
|
+
fi
|
|
158
|
+
|
|
159
|
+
- name: Veroeffentlichte Bytes gegen SHA256SUMS lesen
|
|
160
|
+
env:
|
|
161
|
+
VERSION: ${{ needs.pruefen.outputs.version }}
|
|
162
|
+
run: |
|
|
163
|
+
set -euo pipefail
|
|
164
|
+
soll_whl="$(grep " koolie-${VERSION}-py3-none-any.whl$" dist/SHA256SUMS | cut -d' ' -f1)"
|
|
165
|
+
soll_tgz="$(grep " koolie-${VERSION}.tgz$" dist/SHA256SUMS | cut -d' ' -f1)"
|
|
166
|
+
for i in $(seq 1 40); do
|
|
167
|
+
ist_whl="$(curl -fsS https://pypi.org/pypi/koolie/json \
|
|
168
|
+
| python3 -c "import json,sys;d=json.load(sys.stdin);print(next((u['digests']['sha256'] for u in d['releases'].get('${VERSION}',[]) if u['filename'].endswith('.whl')),''))")"
|
|
169
|
+
[ -n "${ist_whl}" ] && break
|
|
170
|
+
sleep 15
|
|
171
|
+
done
|
|
172
|
+
[ "${ist_whl}" = "${soll_whl}" ] || { echo "::error::PyPI: SHA-256 ${ist_whl} statt ${soll_whl}"; exit 1; }
|
|
173
|
+
ist_npm="$(npm view "@renoxar/koolie@${VERSION}" dist.integrity)"
|
|
174
|
+
soll_npm="sha512-$(openssl dgst -sha512 -binary "dist/npm/koolie-${VERSION}.tgz" | base64 -w0)"
|
|
175
|
+
[ "${ist_npm}" = "${soll_npm}" ] || { echo "::error::npm: ${ist_npm} statt ${soll_npm}"; exit 1; }
|
|
176
|
+
sha256sum "dist/npm/koolie-${VERSION}.tgz" | grep -q "^${soll_tgz} "
|
|
177
|
+
echo "PyPI und npm tragen die Bytes aus SHA256SUMS"
|
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
# Kennzeichen des Quellrepositoriums
|
|
2
2
|
|
|
3
|
-
Diese Datei kennzeichnet das
|
|
4
|
-
Projekt, das
|
|
5
|
-
|
|
3
|
+
Diese Datei kennzeichnet das Repositorium von Koolie selbst – im Unterschied zu einem
|
|
4
|
+
Projekt, das Koolie übernommen hat. Ihr Inhalt ist nebensächlich; dass sie da ist, ist
|
|
5
|
+
die Aussage.
|
|
6
6
|
|
|
7
|
-
Der Validator
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
Prüfung 78 enthält sich.
|
|
7
|
+
Der Validator erkennt an ihr, wo er läuft. Im Quellrepositorium prüft er alle
|
|
8
|
+
versionierten Dateien und die Lizenz an beiden Stellen; in einem Projekt nur das, was
|
|
9
|
+
ausgeliefert wird.
|
|
11
10
|
|
|
12
|
-
**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
denn sie ist versioniert. `install.py` meldet sie dann; in einem Projekt gehört sie
|
|
16
|
-
entfernt (D-354). Bis `1.4.0` war dieses
|
|
17
|
-
Kennzeichen die Übergabe `UEBERGABE.md`; seit `1.4.1` ist die Übergabe ein lokales
|
|
18
|
-
Arbeitsdokument und nicht mehr versioniert (D-350).
|
|
11
|
+
**In ein Projekt gehört sie nicht.** `install.py` kopiert nur `.koolie/core/` und legt
|
|
12
|
+
diese Datei nicht an. Wer von Hand ganz `.koolie/` kopiert, nimmt sie mit – dann meldet
|
|
13
|
+
`install.py` sie, und sie wird im Projekt gelöscht.
|
|
@@ -2,6 +2,65 @@
|
|
|
2
2
|
|
|
3
3
|
Format: Semantic Versioning; je Release Änderungen, Migrationshinweise für Overlays und bekannte Einschränkungen. Prozess: `.koolie/core/governance/RELEASE_PROCESS.md`.
|
|
4
4
|
|
|
5
|
+
## [2.0.0] - 2026-10-02
|
|
6
|
+
|
|
7
|
+
**Ein sauberer öffentlicher Auftritt, das Präfix `koolie-` und die Veröffentlichung ohne Token**
|
|
8
|
+
(`CR-2026-173`, **D-539** bis **D-541**, Prüfung 113 neu, Prüfung 112 erweitert; `K-210` geklärt, `K-213` bis
|
|
9
|
+
`K-215` neu). Drei Stichprobenläufe `claude-code`, 1,49 USD nach Listenpreis. Kriterium 2 von D-11 bleibt 0.
|
|
10
|
+
|
|
11
|
+
**Bruch**
|
|
12
|
+
|
|
13
|
+
- **Die mitgelieferten Skills heißen `koolie-<name>`** (D-539): `/fw-plan` wird `/koolie-plan`, `role-re-ticket`
|
|
14
|
+
wird `koolie-ticket`, das Agentenprofil `fw-reviewer` wird `koolie-reviewer`. `koolie-*` gehört dem Framework,
|
|
15
|
+
`prj-*` dem Projekt; der Validator verlangt eindeutige Namen über alle Packs.
|
|
16
|
+
|
|
17
|
+
**Neu**
|
|
18
|
+
|
|
19
|
+
- **`install.py --update` migriert selbst** (D-539): Es benennt alte Skillordner und das Agentenprofil um und
|
|
20
|
+
ersetzt die alten Namen in der Berechtigungsdatei einmalig, mit Meldung; `--dry-run` und `--check` zeigen es
|
|
21
|
+
vorher. Sondenteil 19.
|
|
22
|
+
- **Keine Kennungen in der Produktdokumentation** (D-540): Prüfung 113 meldet `CR-`, `D-` und `K-`-Kennungen
|
|
23
|
+
außerhalb der Nachweisschicht. Ausgenommen sind Ergebnis- und Belegspalten, die Belegspalte der
|
|
24
|
+
Fähigkeitsmatrix, Versionsverläufe und drei Kapitel des Hauptdokuments (Grenzen, Anhänge, Abschluss).
|
|
25
|
+
Sondenteil 20. Die Schreibregeln stehen in `docs/DOCUMENTATION_STANDARD.md` Abschnitt 3.
|
|
26
|
+
- **Die Produktdokumentation ist neu gefasst**: Übernahmeleitfaden, Quickstart, `clients/README.md`, Regeln und
|
|
27
|
+
Prozesse, die fünf `CLIENT_PACK.md` und das Hauptdokument – ohne Entscheidungsgeschichte, kürzer. Anweisungen
|
|
28
|
+
in Skills und Laufzeitregeln sind unverändert; in `03-security.md` und `05-working-model.md` fielen nur
|
|
29
|
+
Versionsangaben und Fettdruck, die Standmarke von `koolie-refactor` ist bestätigt.
|
|
30
|
+
- **Trusted Publishing für PyPI und npm** (D-541, `K-210`): Der Workflow `.github/workflows/publish.yml` am
|
|
31
|
+
GitHub-Spiegel läuft nur an einer Marke `v*`, prüft Signatur und `VERSION`, lädt auf TestPyPI mit
|
|
32
|
+
Installationsprobe und erst nach Freigabe des Owners auf PyPI (Attestierung) und npm (Provenienz). Prüfung 112
|
|
33
|
+
Gegenstand d, Sonden 112k bis 112n. Einrichtung in `RELEASE_PROCESS.md` Abschnitt 4.2.
|
|
34
|
+
- Drei Ideen des Owners sind ohne Ziel-Release vorgemerkt (`K-213` bis `K-215`).
|
|
35
|
+
|
|
36
|
+
**Gemessen**
|
|
37
|
+
|
|
38
|
+
- Drei Stichprobenläufe `claude-code` 2.1.287: Skill per Slash, modellseitig und in einem gehobenen Projekt, alle
|
|
39
|
+
tragen, 0 Abweisungen (`tests/protocols/2026-10-02-oeffentlicher-auftritt-2.0.0.md`).
|
|
40
|
+
- Der Workflow lokal: `actionlint` 1.7.12 ohne Befund, Bau und Installationsprobe aus dem Wheel, Signaturprüfung an
|
|
41
|
+
`v1.25.0` mit Gegenprobe.
|
|
42
|
+
|
|
43
|
+
**Behoben**
|
|
44
|
+
|
|
45
|
+
- Das Hauptdokument nannte vier Client Packs und zwölf Referenz-Skills, im Verzeichnisbaum fehlten `cursor`, `kiro`
|
|
46
|
+
und vier Kernskripte, und es beschrieb die Overlay-Sperre noch als `deny`.
|
|
47
|
+
- Das Pack `software-development` nannte den Schritt `install.py --update` nicht; die Overlay-Vorlage sagte in
|
|
48
|
+
Abschnitt 6, keine Prüfung vergleiche die Konfigurationslisten (Prüfung 89 tut es).
|
|
49
|
+
- `openai-codex` Abschnitt 7.1 nannte unerhoben, was die Belegzelle B6 belegt.
|
|
50
|
+
|
|
51
|
+
**Migrationshinweis für Overlays**
|
|
52
|
+
|
|
53
|
+
- `install.py --update` (oder `koolie --target <projekt> --update`) hebt die Skillnamen selbst; vorher zeigt
|
|
54
|
+
`--dry-run`, was umbenannt wird.
|
|
55
|
+
- Von Hand: Nennt das Overlay, eine eigene Regel (`2N-overlay-*`), eine README oder eine Merge-Request-Vorlage
|
|
56
|
+
Skillnamen, auf `koolie-` umstellen. Ein projekteigener Skill mit Präfix `fw-` oder `koolie-` wird `prj-`.
|
|
57
|
+
- Slash-Befehle in Notizen und Gewohnheiten: `/koolie-<name>`.
|
|
58
|
+
|
|
59
|
+
**Bekannte Einschränkungen**
|
|
60
|
+
|
|
61
|
+
- Der Workflow läuft erstmals an `v2.0.0`; bis zum ersten erfolgreichen Lauf bleiben die Tokens als Rückfall.
|
|
62
|
+
- `K-211` und `K-212` bleiben offen.
|
|
63
|
+
|
|
5
64
|
## [1.25.0] - 2026-10-01
|
|
6
65
|
|
|
7
66
|
**Ein neuer Auftritt, npm unter dem Scope und die Suche nach dem Aeltesten - und der Name, den npm fuer cookie hielt**
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
| Status | `pilot` |
|
|
8
8
|
| Owner (Rolle) | `<FRAMEWORK_OWNER>` |
|
|
9
9
|
| Gilt für | den gesamten Inhalt dieses Frameworks – Kern, Client Packs, Regeltexte, Werkzeuge, Vorlagen und Dokumentation |
|
|
10
|
-
| Entstehung | `CR-2026-126`, **D-316** bis **D-317** (2026-09-23); Rechteinhaber benannt mit `CR-2026-128`, **D-323**; SPDX-Kennung mit `CR-2026-165`, **D-507** |
|
|
11
10
|
|
|
12
11
|
## 1. Lizenz (normativ)
|
|
13
12
|
|
|
@@ -17,13 +16,13 @@ Open-Source-Definition** – jede und jeder darf es nutzen, untersuchen, ändern
|
|
|
17
16
|
weitergeben.
|
|
18
17
|
|
|
19
18
|
SPDX-Kennung: `GPL-3.0-only` – es gilt Version 3, nicht „oder jede spätere Version“
|
|
20
|
-
|
|
19
|
+
. Das Banner des Installationsdialogs liest diese Zeile und die folgende und nennt
|
|
21
20
|
die Kurzform `GPL-3.0`.
|
|
22
21
|
|
|
23
22
|
Copyright © 2026 René Hildebrand
|
|
24
23
|
|
|
25
24
|
> 🔴 **Diese eine Zeile nennt eine Person, und sie ist die einzige im ganzen Kern, die
|
|
26
|
-
> das tut
|
|
25
|
+
> das tut**. Überall sonst gilt die Projektneutralität: Rollen
|
|
27
26
|
> statt Personen, Platzhalter statt Namen. **Hier gilt sie nicht, und der Grund ist
|
|
28
27
|
> keine Ausnahme vom Prinzip, sondern seine Grenze.** Die Neutralitätsregel hält
|
|
29
28
|
> **fremde** Personen aus generischen Bestandteilen – Kunden, Behörden, Kolleginnen und
|
|
@@ -35,7 +34,7 @@ Copyright © 2026 René Hildebrand
|
|
|
35
34
|
> übernehmende Projekt. ⚠️ **Und der Widerspruch, der ihn nötig machte, ist gemessen:**
|
|
36
35
|
> Die Historie dieses Repositoriums führt denselben Namen in **122 Commits** und die
|
|
37
36
|
> Adresse in allen **261** – *er stand dort, wo er niemandem nützt, und fehlte dort, wo
|
|
38
|
-
> er rechtlich wirkt
|
|
37
|
+
> er rechtlich wirkt*.
|
|
39
38
|
|
|
40
39
|
> Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General
|
|
41
40
|
> Public License, Version 3, weitergeben und/oder verändern. Es wird **ohne jede
|
|
@@ -80,11 +79,11 @@ nur benutzt, entsteht keine einzige Pflicht.
|
|
|
80
79
|
| Mit dem Framework wird ein Produkt entwickelt und verkauft | **keine Pflicht.** Das Produkt ist keine Ableitung: Es enthält keine Zeile dieses Frameworks, und die Ausgabe eines Werkzeugs ist keine Ableitung des Werkzeugs (Abschnitt 2) |
|
|
81
80
|
| Das Projektrepositorium wird veröffentlicht, mit `<CORE_DIR>/` darin | `<CORE_DIR>/` steht unter GPL-3.0 – **es steht ohnehin schon so da.** Der eigene Code daneben bleibt frei: §5 GPL-3.0 nennt das ein *aggregate*, und ein gemeinsames Repositorium ist genau das |
|
|
82
81
|
| Code dieses Frameworks wird **in** ein Produkt hineinkopiert | Dieser Teil wird GPL-3.0. **Das ist gewollt** und der einzige Fall, in dem die Lizenz greift |
|
|
83
|
-
| Das Framework selbst wird weitergegeben, entgeltlich oder unentgeltlich | Es muss unter GPL-3.0 weitergegeben werden, mit Quelltext. **Ein Umbenennen-und-proprietär-Verkaufen ist damit ausgeschlossen** – das war der tragende Grund der Lizenzwahl
|
|
82
|
+
| Das Framework selbst wird weitergegeben, entgeltlich oder unentgeltlich | Es muss unter GPL-3.0 weitergegeben werden, mit Quelltext. **Ein Umbenennen-und-proprietär-Verkaufen ist damit ausgeschlossen** – das war der tragende Grund der Lizenzwahl |
|
|
84
83
|
|
|
85
84
|
## 4. Die verworfenen Alternativen (Erläuterung)
|
|
86
85
|
|
|
87
|
-
|
|
86
|
+
Zwei Alternativen lagen nahe:
|
|
88
87
|
|
|
89
88
|
- **Apache-2.0** – verworfen: Sie erlaubt ausdrücklich, das Werk umzubenennen, zu schließen
|
|
90
89
|
und zu verkaufen. Ihr einziger Riegel ist §6, und der schützt den **Namen**, nicht die
|
package/.koolie/core/OWNERS.md
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
| Datenschutzmodell (FW-CORE-02) | `.koolie/core/framework/core/02-privacy.md`, Regelablage `10-*` | `<FRAMEWORK_OWNER>` mit `<DATA_PROTECTION_CONTACT>` | – |
|
|
17
17
|
| Sicherheitsmodell (FW-CORE-03), Berechtigungen, Hooks | `.koolie/core/framework/core/03-security.md`, `.koolie/core/framework/runtime/permissions.json`, `.koolie/core/framework/runtime/hooks.json`, `.koolie/core/clientmap.py`, `.koolie/core/tests/scripts/hook-*` | `<FRAMEWORK_OWNER>` mit `<SECURITY_CONTACT>` | – |
|
|
18
18
|
| Role Pack Softwareentwicklung | `.koolie/core/framework/role-packs/software-development/`, Regelablage `30-role-software-development.md` | `<FRAMEWORK_OWNER>` (bis Benennung Modul-Owner: `<TBD>`) | – |
|
|
19
|
-
| Role Pack Requirements Engineering (RP-RE), Skill `
|
|
19
|
+
| Role Pack Requirements Engineering (RP-RE), Skill `koolie-ticket` | `.koolie/core/framework/role-packs/requirements-engineering/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
|
|
20
20
|
| Technology Packs | `.koolie/core/framework/tech-packs/` | je Pack `<TBD: Modul-Owner>` | – |
|
|
21
21
|
| Client Packs (Abbildung auf KI-Clients) | `.koolie/core/clients/` | `<FRAMEWORK_OWNER>` | `<SECURITY_CONTACT>` für Kernzusagen ohne technische Durchsetzung |
|
|
22
22
|
| Client Pack `devin-desktop` (CP-DD) | `.koolie/core/clients/devin-desktop/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
| Client Pack `openai-codex` (CP-OC) | `.koolie/core/clients/openai-codex/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
|
|
25
25
|
| Client Pack `kiro` (CP-KI) | `.koolie/core/clients/kiro/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
|
|
26
26
|
| Client Pack `cursor` (CP-CU) | `.koolie/core/clients/cursor/` | `<FRAMEWORK_OWNER>` | `<TBD: Rolle>` |
|
|
27
|
-
| Framework-Skills FW-SK-001…012 | Skill-Ablage `
|
|
27
|
+
| Framework-Skills FW-SK-001…012 | Skill-Ablage `koolie-*` | `<FRAMEWORK_OWNER>` (bis Benennung Modul-Owner je Gruppe) | – |
|
|
28
28
|
| Prompt-Bibliothek | `.koolie/core/prompts/` | `<FRAMEWORK_OWNER>` | – |
|
|
29
29
|
| Checklisten und Entscheidungsbäume | `.koolie/core/checklists/`, `.koolie/core/decision-trees/` | `<FRAMEWORK_OWNER>` | – |
|
|
30
30
|
| Onboarding | `.koolie/core/onboarding/` | `<FRAMEWORK_OWNER>` mit Mentorinnen und Mentoren | – |
|
package/.koolie/core/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
2.0.0
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
| | |
|
|
6
6
|
|---|---|
|
|
7
|
-
| Dokumentversion |
|
|
7
|
+
| Dokumentversion | 2.0.0 (entspricht Framework-Release 2.0.0) |
|
|
8
8
|
| Stand | 2026-09-28 |
|
|
9
|
-
| Status |
|
|
9
|
+
| Status | Kein Modulträger steht auf `entwurf`; Prüfung 46 rechnet das bei jedem Validatorlauf nach. Die technische Validierung gegen reale Installationen (Roadmap-Arbeitspaket AP2) ist abgeschlossen; die Protokolle liegen unter `.koolie/core/tests/protocols/`. Was als Nächstes kommt, steht in der Roadmap (Kap. 30) |
|
|
10
10
|
| Vertraulichkeit | projektneutral – enthält keine organisations-, kunden-, personen- oder infrastrukturspezifischen Inhalte; Beispiele sind synthetisch |
|
|
11
|
-
| Zielprodukt | Kein einzelnes. Der Kern ist werkzeugneutral; die Bindung an einen KI-Client leistet ein **Client Pack** (`.koolie/core/clients/`). Ausgeliefert werden fünf: `devin-desktop`, `claude-code`, `openai-codex`, `kiro` und `cursor` (Reifegrad `pilot`).
|
|
12
|
-
|
|
|
11
|
+
| Zielprodukt | Kein einzelnes. Der Kern ist werkzeugneutral; die Bindung an einen KI-Client leistet ein **Client Pack** (`.koolie/core/clients/`). Ausgeliefert werden fünf: `devin-desktop`, `claude-code`, `openai-codex`, `kiro` und `cursor` (Reifegrad `pilot`). Welches Produkt ein Pack abbildet, gegen welche Zielversion und mit welchem Stand der Produktbeobachtung, steht im Pack selbst (Kap. 7a, 15.1), weil sich diese Angaben mit dem Produkt ändern. |
|
|
12
|
+
| Reproduzierbarkeit | Das Dokument wird aus dem Repository assembliert und baut aus einem frischen Auscheckstand. Laufzeitdateien stammen aus einer Referenzinstallation, die beim Bau entsteht; jede trägt die Angabe, aus welchem Client Pack sie kommt. |
|
|
13
13
|
| Bestandteile der Lieferung | dieses Hauptdokument (Markdown und Word) und das Referenz-Repository – das Repository ist die maßgebliche, versionierte Quelle aller eingebetteten Artefakte |
|
|
14
14
|
| Autorenschaft | erstellt als beauftragte Ausarbeitung; Verantwortungsübernahme durch `<FRAMEWORK_OWNER>` bei Übernahme |
|
|
15
15
|
|
|
16
|
-
**Warum Koolie?** Ein
|
|
16
|
+
**Warum Koolie?** Ein Koolie ist ein australischer Hütehund. Er treibt die Herde nicht und ersetzt den Schäfer nicht; er hält sie beisammen und in Richtung, selbständig, aber auf Anweisung. Das tut dieses Framework mit einem KI-Client: Es entscheidet nichts an seiner Stelle, sondern hält ihn in der Spur, an den Grenzen und an den Stellen, an denen ein Mensch entscheidet. Und ein Koolie ist eine Gebrauchsrasse, kein Schauhund: Was hier steht, muss im Alltag eines Projekts tragen.
|
|
17
17
|
|
|
18
|
-
**Lesehinweise:** Verbindlichkeit wird durchgängig über
|
|
18
|
+
**Lesehinweise:** Verbindlichkeit wird durchgängig über MUSS / SOLL / KANN / DARF NICHT ausgedrückt; normative Abschnitte sind als solche gekennzeichnet, Erläuterungen tragen den Zusatz „(Erläuterung)", Beispiele sind stets „Beispiel (synthetisch)". Jede Aussage über Produktfunktionen eines KI-Clients trägt einen Belegstatus: `[DOK]` offiziell dokumentiert (Quellen in Anhang 31.4), `[EMPF]` technisch begründete, noch nicht in einer Installation ausgeführte Empfehlung, `[KONZ]` konzeptioneller Vorschlag ohne Produktbezug; offene Prüfpunkte tragen den Belegstand `BELEG OFFEN` mit Grund und Datum. Variable Inhalte erscheinen ausschließlich als Platzhalter in spitzen Klammern (Register in Anhang 31.3); offene Projektentscheidungen als `<TBD: …>`. Verweise der Form `.koolie/core/framework/core/…` bezeichnen Dateien des Referenz-Repositorys. Bestandteile der Laufzeitschicht werden im Fließtext mit **Begriffen** benannt (Wurzel-Anweisungsdatei, Regelablage, Berechtigungsdatei …); ihre Pfade je Client Pack führt Anhang 31.2.
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
# 1 Executive Summary
|
|
2
2
|
|
|
3
|
-
Dieses Dokument
|
|
3
|
+
Dieses Dokument beschreibt ein projektneutrales, wiederverwendbares und erweiterbares Framework für den Einsatz von KI-Codierassistenten in Softwareentwicklungsteams: ein Vorgehensmodell und eine sofort nutzbare Referenzimplementierung als Repository. Erster Einsatzzweck ist die Einführung des Werkzeugs und das Onboarding neuer Entwicklerinnen und Entwickler in einem bestehenden Projekt. Für ein weiteres Team oder Projekt wird nur eine Ebene getauscht, das Project Overlay.
|
|
4
4
|
|
|
5
|
-
**Der Kern ist werkzeugneutral
|
|
5
|
+
**Der Kern ist werkzeugneutral.** Welcher Assistent zum Einsatz kommt, legt ein **Client Pack** fest (Kap. 7a), eine Abbildungsschicht, die keine Regel einführt und keine lockert. Ausgeliefert werden fünf: `claude-code`, `devin-desktop`, `openai-codex`, `kiro` und `cursor`, alle mit Reifegrad `pilot`; die Regelmenge ist bei allen dieselbe. Jedes Pack führt eine Fähigkeitsmatrix, die jede technische Zusage des Frameworks einstuft: `[TECHNISCH]` (die Engine erzwingt sie), `[TEXTUELL]` (nur Anweisung im Kontext) oder `[NICHT ABBILDBAR]`. So ist sichtbar, was ein Werkzeug tatsächlich durchsetzt und wo eine Schutzzusage nur als Text im Prompt steht. Die Matrizen sind unterschiedlich lang, weil eine Zusage ohne Mechanismus beim Client keine Zeile bekommt; ihre Gesamtzahlen lassen sich deshalb nicht vergleichen (Kap. 7a.3).
|
|
6
6
|
|
|
7
7
|
Das Framework beantwortet die zehn Leitfragen des Auftrags so:
|
|
8
8
|
|
|
9
9
|
- **Sicherer und kontrollierter Einsatz:** Vier Kontrollschichten wirken zusammen – organisationsweite Einstellungen, versionierte Repository-Konfiguration (Berechtigungen mit `deny`-Vorrang, Hooks, Regeln), Sitzungsdisziplin (rückfragender Standardmodus, Einzelbestätigungen) und menschliche Prüfung entlang bestehender Quality Gates.
|
|
10
|
-
- **Was der Assistent darf**, regeln sechs Betriebsmodi (M1 Analyse bis M5 Dokumentation, dazu M6 für das Eintragen von Entscheidungen des Menschen in das Overlay
|
|
11
|
-
- **Kontext** wird über vier Klassen (K0–K3) aufgabenbezogen bereitgestellt
|
|
10
|
+
- **Was der Assistent darf**, regeln sechs Betriebsmodi (M1 Analyse bis M5 Dokumentation, dazu M6 für das Eintragen von Entscheidungen des Menschen in das Overlay, nur mit Mandat) zusammen mit einer dreistufigen Risikoklassifizierung (niedrig/mittel/hoch, Maximumprinzip über dreizehn Faktoren). **Was er nie darf**, legt eine Delegationsverbotsliste mit zwölf Punkten fest (Freigaben, Merges, Releases, Architekturentscheidungen, Secrets, Echtdaten und weitere).
|
|
11
|
+
- **Kontext** wird über vier Klassen (K0–K3) aufgabenbezogen bereitgestellt, mit technischer Absicherung gegen die häufigsten Fehler.
|
|
12
12
|
- **Regeln, Skills und Prompts** sind über eine Vier-plus-zwei-Ebenen-Architektur strukturiert (Framework Core, Role Packs, Technology Packs, Project Overlay, dazu Organisationsvorgaben und flüchtiger Aufgabenkontext) und über eine achtstufige, widerspruchsgeprüfte Prioritätshierarchie geordnet.
|
|
13
13
|
- **Onboarding** erfolgt über ein Programm mit Übungen, Negativübungen (Ködern) und dokumentierter Freigabe.
|
|
14
14
|
- **Prüfung und Freigabe** von KI-Ergebnissen laufen ausschließlich über die bestehenden Reviews und Gates, ergänzt um KI-spezifische Prüfpunkte.
|
|
15
15
|
- **Versionierung, Pflege und Übertragung** regelt ein Governance-Betriebsmodell mit Release-Prozess, Testkatalog und Übernahmeleitfaden.
|
|
16
16
|
- **Nutzen und Risiken** misst ein Pilotkonzept mit ausdrücklich projektspezifisch festzulegenden Zielwerten.
|
|
17
17
|
|
|
18
|
-
Die Referenzimplementierung liefert die zentrale Agentenanweisung, eine
|
|
18
|
+
Die Referenzimplementierung liefert die zentrale Agentenanweisung, eine Project-Overlay-Vorlage mit Manifest für dreizehn projektspezifische Dokumenttypen, dreizehn Referenz-Skills mit Testfällen, ein Role Pack mit einem weiteren Skill, zwölf Prompt-Vorlagen, elf Checklisten, sechs Entscheidungsbäume, das Onboarding-Paket, einen Testkatalog mit Prüfskripten sowie RACI-, Prozess- und Roadmap-Vorlagen. Die **Laufzeitschicht**, also das, was der Assistent tatsächlich liest, wird nicht von Hand gepflegt, sondern bei der Installation aus dem Kern in der Form des gewählten Client Packs erzeugt. Installiert wird über eine Paketquelle (`uvx koolie`, `npx @renoxar/koolie`) oder einen Starter für Windows oder macOS; beide fragen Projektverzeichnis, Client Pack und auf Wunsch ein Overlay-Muster ab und kopieren den Kern in das Projekt (Kap. 15.2, 28).
|
|
19
19
|
|
|
20
|
-
**
|
|
20
|
+
**Kosten** (gemessen, Kap. 28, Abschnitt 7): Eine kleine Aufgabe wird mit dem Framework rund zwei- bis dreimal so teuer, eine größere rund doppelt so teuer, bei Listenpreisen von 2026-09-26 einige Cent je Aufgabe. Die feste Last je Modellaufruf (4.400 bis 15.000 Token je Client Pack) kommt fast immer aus dem Cache; den Unterschied macht die Arbeitsweise mit Fundstellen, Skill und Ergebnisbericht. Die Schutzschicht wirkt nur für eine Sitzung, die im Verzeichnis der Installation startet; bei mehreren Repositories braucht jedes eine eigene Installation (Kap. 28, Abschnitt 4).
|
|
21
21
|
|
|
22
|
-
**Wesentliche Grenze der Aussagen:** Die fünf Fähigkeitsmatrizen sind unterschiedlich weit belegt. Für `devin-desktop` ist die Validierung an einer realen Installation
|
|
22
|
+
**Wesentliche Grenze der Aussagen:** Die fünf Fähigkeitsmatrizen sind unterschiedlich weit belegt. Für `devin-desktop` ist die Validierung an einer realen Installation abgeschlossen; offen ist genau eine Zeile, und zwar dauerhaft, weil ihre Frage von außen nicht beobachtbar ist. Für `claude-code` liegt ein Abgleich mit der Herstellerdokumentation einer benannten Clientversion vor, dazu Messungen für einen Teil der Zeilen; die übrigen Wirkungsnachweise stehen aus. Für `openai-codex` stammen alle Belege aus Messungen am Client selbst; einige Zeilen sind noch offen, und eine Beobachtung der Herstellerdokumentation fehlt. Für `kiro` ist die Kommandozeile gemessen, die Zeilen der IDE sind es nicht, und die Hooks laufen nur in der interaktiven Sitzung. Für `cursor` ist die Kommandozeile unter Windows gemessen; die Zeilen der IDE und die Schreibweise der Pfadmuster für macOS und Linux sind es nicht. Welche Zeile wie belegt ist, sagt die Belegspalte der jeweiligen Matrix. Alle produktbezogenen Aussagen tragen Belegstatus; Offenes trägt `BELEG OFFEN` mit Grund und Datum, ohne Frist.
|
|
23
23
|
|
|
24
|
-
**
|
|
24
|
+
**Nächste Schritte für ein aufnehmendes Projekt:** Rollen besetzen und Datenschutz- und Vertragsprüfung beauftragen (AP1), Client Pack wählen und Overlay ausfüllen (AP4), Sicherheits- und Datenschutzfreigabe einholen (AP6). Der Weg steht in Kap. 30 und im Abschlussteil.
|
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
|---|---|---|
|
|
21
21
|
| N1 | Maximierung des Automatisierungsgrads oder „autonome" Entwicklung | Human Accountability ist Grundprinzip; Autonomie-Modi sind untersagt beziehungsweise ausnahmepflichtig |
|
|
22
22
|
| N2 | Ersatz bestehender Prozesse, Reviews, Gates oder Rollen | Das Framework ergänzt; es ersetzt nichts (P6) |
|
|
23
|
-
| N3 | Rechtliche Bewertung oder Compliance-Freigabe (Datenschutzrecht, Lizenzrecht, KI-Regulierung) | Liegt bei den zuständigen Rollen der Organisation; das Framework liefert operative Anschlusspunkte und benennt Prüfbedarfe
|
|
23
|
+
| N3 | Rechtliche Bewertung oder Compliance-Freigabe (Datenschutzrecht, Lizenzrecht, KI-Regulierung) | Liegt bei den zuständigen Rollen der Organisation; das Framework liefert operative Anschlusspunkte und benennt Prüfbedarfe |
|
|
24
24
|
| N4 | Bewertung oder Überwachung von Personen anhand von Nutzungs- oder Pilotdaten | Ausdrücklich ausgeschlossen (V7, Metrik-Grundsätze) |
|
|
25
25
|
| N5 | Produktdokumentation oder Schulung für einen KI-Client als Produkt | Das Framework referenziert die offizielle Dokumentation; es dupliziert sie nicht |
|
|
26
26
|
| N6 | Vollständige technologie- oder branchenspezifische Regelwerke in der Erstfassung | Technology Packs entstehen projektbezogen; die Struktur dafür ist Teil des Frameworks |
|
|
27
|
-
| N7 | Abdeckung anderer Einsatzformen (Cloud-Sitzungen, Läufe ohne beobachtende Person, Fremdagenten) im Kern der Erstfassung | Als Erweiterung vorgesehen, standardmäßig deaktiviert
|
|
27
|
+
| N7 | Abdeckung anderer Einsatzformen (Cloud-Sitzungen, Läufe ohne beobachtende Person, Fremdagenten) im Kern der Erstfassung | Als Erweiterung vorgesehen, standardmäßig deaktiviert. Ein Kommandozeilen-Client in einer beobachteten Sitzung gehört zum Kern |
|
|
28
28
|
| N8 | Garantie fehlerfreier KI-Ergebnisse | Unerreichbar; das Framework macht Fehler früh sichtbar und begrenzt ihre Wirkung |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Das Framework gilt für den Einsatz eines **KI-Codierassistenten** in Softwareentwicklungsprojekten mit Git-basiertem Entwicklungsprozess und den im verfügbaren Kontext genannten generischen Werkzeugklassen (Issue Tracking wie `<ISSUE_TRACKER>`, Git-Repository, Merge beziehungsweise Pull Requests, `<CI_CD_PLATFORM>`, statische Codeanalyse, automatisierte Tests, technische Dokumentation, Teamkommunikation und Wissensmanagement). Es umfasst Governance, Datenschutz- und Sicherheitsmodell, Arbeitsmodell, Skills, Prompts, Checklisten, Entscheidungsbäume, Onboarding, Framework-Qualitätssicherung, Pilotierung und Übernahme.
|
|
6
6
|
|
|
7
|
-
Vorausgesetzt ist die **lokale, beobachtete** Nutzung: Der Assistent läuft in der Entwicklungsumgebung, eine Person verfolgt die Sitzung. Nicht Teil des Kerngeltungsbereichs
|
|
7
|
+
Vorausgesetzt ist die **lokale, beobachtete** Nutzung: Der Assistent läuft in der Entwicklungsumgebung, eine Person verfolgt die Sitzung. Nicht Teil des Kerngeltungsbereichs, strukturell vorbereitet und standardmäßig deaktiviert (`<TBD: Freigabe Cloud/CLI-Nutzung>`): Cloud-Sitzungen, nicht-interaktive Läufe ohne beobachtende Person (auch die eines Kommandozeilen-Clients), automatisierte Reviews, Fremdagenten über offene Agentenprotokolle sowie Hintergrundläufe. Ausgeschlossen ist damit der Betrieb ohne beobachtende Person, nicht eine Oberfläche: Ein Kommandozeilen-Client in einer interaktiven Sitzung, die eine Person verfolgt, gehört zum Kerngeltungsbereich. Eine Freigabe dieser Formen erfordert eine Erweiterung des Sicherheitsmodells über den Änderungsprozess.
|
|
8
8
|
|
|
9
9
|
**Welcher** Assistent zum Einsatz kommt, legt das gewählte Client Pack fest (Kap. 7a). Der Geltungsbereich ist davon unabhängig; die Durchsetzungstiefe der Zusagen ist es nicht – sie steht in der Fähigkeitsmatrix des Packs und ist vor Inbetriebnahme zu bewerten.
|
|
10
10
|
|
|
@@ -14,12 +14,12 @@ Es gilt für alle Personen, die im Geltungsbereich eines aktiven Project Overlay
|
|
|
14
14
|
|
|
15
15
|
## 4.3 Organisatorisch und zeitlich
|
|
16
16
|
|
|
17
|
-
Je Projekt wird der Geltungsbereich durch das Project Overlay konkretisiert (Repositorys, Pfade, Rollen, Freigaben); ohne aktives Overlay ist produktiver Einsatz unzulässig (nur Onboarding-Übungen auf dem synthetischen Übungsrepository). Voraussetzungen auf Organisationsebene – Werkzeugfreigabe, Datenschutz- und Vertragsprüfung, administrativ gesetzte Team-Einstellungen – sind Eingangsbedingungen (Klärungspunkte
|
|
17
|
+
Je Projekt wird der Geltungsbereich durch das Project Overlay konkretisiert (Repositorys, Pfade, Rollen, Freigaben); ohne aktives Overlay ist produktiver Einsatz unzulässig (nur Onboarding-Übungen auf dem synthetischen Übungsrepository). Voraussetzungen auf Organisationsebene – Werkzeugfreigabe, Datenschutz- und Vertragsprüfung, administrativ gesetzte Team-Einstellungen – sind Eingangsbedingungen (offene Klärungspunkte, Kap. 29.2) und werden über die Ebene der Organisationsvorgaben eingebunden. Das Framework gilt ab Übernahme (Adoption) in der jeweils referenzierten Release-Version bis zur Deaktivierung des Overlays.
|
|
18
18
|
|
|
19
19
|
## 4.4 Produktstand und Grenzen der Aussagen
|
|
20
20
|
|
|
21
21
|
Das Framework legt keinen Produktstand fest – ein Client Pack tut es. Jedes Pack nennt in seinem Kopf die **geprüfte Clientversion** und das Datum der Prüfung; ohne diese Angabe ist keine Einstufung `[TECHNISCH]` zulässig (Kap. 7a).
|
|
22
22
|
|
|
23
|
-
Für das in diesem Dokument durchgehend verwendete Pack `devin-desktop` stehen
|
|
23
|
+
Für das in diesem Dokument durchgehend verwendete Pack `devin-desktop` stehen Zielspanne, geprüfte Punktversion, Prüfdatum und Stand der Produktbeobachtung im Pack selbst (Kap. 15.1), weil sie sich mit dem Produkt ändern. Die Zielspanne ist der geprüfte Geltungsbereich, nicht der aktuelle Produktstand; das Pack weist den Abstand zwischen beiden aus.
|
|
24
24
|
|
|
25
|
-
Alle produktbezogenen Aussagen tragen Belegstatus.
|
|
25
|
+
Alle produktbezogenen Aussagen tragen Belegstatus. Die verbindliche Zielversion jedes ausgelieferten Packs ist festgelegt. Wie weit seine Zeilen belegt sind, ist je Pack verschieden (Kap. 1, 7a.3); welche Zeile wie weit belegt ist, sagt die Belegspalte der jeweiligen Matrix – je Zeile, nicht als Gesamturteil.
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
| Client Pack | Abbildungsschicht für genau einen KI-Client: Pfadabbildung, Semantikabbildung und Fähigkeitsmatrix (Kap. 7a). Keine Regelebene |
|
|
7
7
|
| Fähigkeitsmatrix | Einstufung jeder technischen Zusage des Frameworks je Client: `[TECHNISCH]` erzwungen · `[TEXTUELL]` nur Anweisung · `[NICHT ABBILDBAR]`. Die Zeilenzahl ist je Pack verschieden – ein Client, der für eine Zusage keinen Mechanismus hat, bekommt dafür auch keine Zeile (Kap. 7a.3) |
|
|
8
8
|
| Kernzusage B1–B6 | Die sechs Zusagen, die dem Integritätsblock der Berechtigungsdatei entsprechen; eine Abweichung von `[TECHNISCH]` ist begründungs- und freigabepflichtig |
|
|
9
|
-
| `claude-code` · `devin-desktop` · `openai-codex` | Die
|
|
9
|
+
| `claude-code` · `devin-desktop` · `openai-codex` · `kiro` · `cursor` | Die fünf ausgelieferten Client Packs. Welches Produkt, welcher Agent und welche geprüfte Version dahinterstehen, nennt der Kopf des jeweiligen Packs (Kap. 7a.3, 15.1); der Kern nennt es nicht, weil er sich sonst mit dem Produkt änderte. In diesem Dokument ist `devin-desktop` das durchgehende Beispiel |
|
|
10
10
|
| Wurzel-Anweisungsdatei | zentrale Agentenanweisung im Wurzelverzeichnis; wird zu Beginn jeder Sitzung geladen `[DOK]`. Dateiname je Client Pack (Anhang 31.2) |
|
|
11
|
-
| Regel (Rule) | Markdown-Datei in der Regelablage mit Ladebedingung. Quellform: Frontmatter `description`, `trigger` (`always_on`, `model_decision`, `glob`, `manual`, `agent`) und bei `glob` zusätzlich `globs`. Die Ladebedingung wird bei der Installation auf die Bedingungssprache des Clients abgebildet
|
|
11
|
+
| Regel (Rule) | Markdown-Datei in der Regelablage mit Ladebedingung. Quellform: Frontmatter `description`, `trigger` (`always_on`, `model_decision`, `glob`, `manual`, `agent`) und bei `glob` zusätzlich `globs`. Die Ladebedingung wird bei der Installation auf die Bedingungssprache des Clients abgebildet; welche das ist, steht im Client Pack `[DOK]` |
|
|
12
12
|
| Skill | versionierte, testbare Arbeitsanweisung in der Skill-Ablage (`<name>/SKILL.md`); Aufruf `/name` `[DOK]`; Standard in Kap. 18 |
|
|
13
|
-
| Subagent | eigenständiges Agentenprofil für abgegrenzte Teilaufgaben `[DOK]`; im Framework nur das lesende Profil `
|
|
13
|
+
| Subagent | eigenständiges Agentenprofil für abgegrenzte Teilaufgaben `[DOK]`; im Framework nur das lesende Profil `koolie-reviewer` |
|
|
14
14
|
| Hook | konfigurierter Eingriffspunkt im Agenten-Lebenszyklus (Hook-Konfiguration), kann Aktionen blockieren `[DOK]` |
|
|
15
15
|
| Permission-Modus | Bestätigungsverhalten des Clients; Framework-Standard ist der Modus, der bei Schreiben und Befehlen rückfragt. Bezeichnungen je Client (bei `devin-desktop`: Normal, Accept Edits, Smart, Bypass, Autonomous `[DOK]`) |
|
|
16
16
|
| Berechtigungsregeln | `deny`/`ask`/`allow`-Regeln in der Berechtigungsdatei; `deny` gewinnt immer `[DOK]`. Die Regelmenge liegt werkzeugneutral im Kern, die Werkzeugnamen entstehen aus der Semantikabbildung (Kap. 7a) |
|
|
@@ -39,11 +39,11 @@ Allgemeingültige Regeln in elf Modulen – FW-CORE-00 bis FW-CORE-10: 00 Leitpr
|
|
|
39
39
|
|
|
40
40
|
## 7.3 Ebene 6 – Role Packs (optional, rollenbezogen)
|
|
41
41
|
|
|
42
|
-
Module je Tätigkeit. **Ausgeliefert werden zwei:** Softwareentwicklung als Referenzpack (`RP-DEV`) und Requirements Engineering (`RP-RE`) mit dem Skill `
|
|
42
|
+
Module je Tätigkeit. **Ausgeliefert werden zwei:** Softwareentwicklung als Referenzpack (`RP-DEV`) und Requirements Engineering (`RP-RE`) mit dem Skill `koolie-ticket`, dem einzigen Skill, der nicht aus dem Kern stammt. Softwarearchitektur, Testing und QA, DevOps, Dokumentation und Code Review sind strukturell vorgesehen. Ein Role Pack konkretisiert Arbeitsweise, typische Aufgaben mit Modus- und Stufenzuordnung, rollenspezifische Kontextquellen, Prüfpunkte und gegebenenfalls Skills (`koolie-…`). Es enthält keine Governance-Regeln und keine Projektwerte; Aktivierung erfolgt je Projekt über das Overlay; die Laufzeitfassung `30-*` lädt bei Relevanz; kennt ein Client keine modellentschiedene Ladebedingung, lädt sie dort unbedingt.
|
|
43
43
|
|
|
44
44
|
## 7.4 Ebene 5 – Technology Packs (optional, technologiebezogen)
|
|
45
45
|
|
|
46
|
-
Module je Technologieaspekt (Programmiersprache, Anwendungsframework, Build-System, Testframework, Datenbank, API-Technologie, Frontend, Backend, Container, CI/CD). Inhalt: Konventionen und Idiome, Testkonventionen, typische Fehlerquellen KI-generierten Codes in dieser Technologie, technologiespezifische Sicherheitsmuster, gegebenenfalls Skills (`
|
|
46
|
+
Module je Technologieaspekt (Programmiersprache, Anwendungsframework, Build-System, Testframework, Datenbank, API-Technologie, Frontend, Backend, Container, CI/CD). Inhalt: Konventionen und Idiome, Testkonventionen, typische Fehlerquellen KI-generierten Codes in dieser Technologie, technologiespezifische Sicherheitsmuster, gegebenenfalls Skills (`koolie-…`). Die Laufzeitfassung `40-*` bindet sich an die Dateimuster der Technologie und lädt genau dann, wenn passende Dateien berührt werden `[DOK]` – vorausgesetzt, der Client kennt an Dateimuster gebundene Regeln. Ein Client ohne diesen Mechanismus braucht einen der Ersatzwege aus seiner Fähigkeitsmatrix. Ausgeliefert wird bewusst eine Vorlage statt eines konkreten Packs; das erste Pack für `<TECH_STACK>` entsteht in Roadmap-AP4.
|
|
47
47
|
|
|
48
48
|
## 7.5 Ebene 4 – Project Overlay (ausschließlich projektspezifisch)
|
|
49
49
|
|
|
@@ -26,27 +26,27 @@ Kern jedes Client Packs. Sie stuft jede technische Zusage des Frameworks in eine
|
|
|
26
26
|
|
|
27
27
|
Sechs dieser Zusagen sind **Kernzusagen** (B1 bis B6) und entsprechen dem Integritätsblock der Berechtigungsdatei. Weicht eine von `[TECHNISCH]` ab, ist sie im Pack einzeln zu begründen, im Overlay als Ausnahme zu führen und durch `<SECURITY_CONTACT>` freizugeben.
|
|
28
28
|
|
|
29
|
-
Dieses Dokument verwendet `devin-desktop` als durchgehendes Beispiel; seine Matrix steht in Kap. 15.1. Zum Vergleich
|
|
29
|
+
Dieses Dokument verwendet `devin-desktop` als durchgehendes Beispiel; seine Matrix steht in Kap. 15.1. Zum Vergleich folgen zwei weitere Packs, derselbe Kern an anderen Clients. Zuerst `claude-code`:
|
|
30
30
|
|
|
31
31
|
{{EMBED-RAW:.koolie/core/clients/claude-code/CLIENT_PACK.md:1}}
|
|
32
|
-
Dann `openai-codex`, dessen Belege durchweg Messungen sind
|
|
32
|
+
Dann `openai-codex`, dessen Belege durchweg Messungen sind:
|
|
33
33
|
|
|
34
34
|
{{EMBED-RAW:.koolie/core/clients/openai-codex/CLIENT_PACK.md:1}}
|
|
35
|
-
|
|
35
|
+
Im Vergleich: `devin-desktop` und `claude-code` bilden alle sechs Kernzusagen ab, drei davon technisch in jedem Zugriffskanal (B1, B2, B6), drei nur für den direkten Zugriff (B3, B4, B5); für Shell und Unterprozess trägt dort die Regelschicht. Bei `openai-codex` sind B3 und B5 `[NICHT ABBILDBAR]`; das Pack begründet es, und ein Projekt braucht dafür eine dokumentierte Ausnahme mit Freigabe durch `<SECURITY_CONTACT>` (siehe oben).
|
|
36
36
|
|
|
37
|
-
**Ein Vergleich der Gesamtzahlen trägt dagegen nicht
|
|
37
|
+
**Ein Vergleich der Gesamtzahlen trägt dagegen nicht.** Die Matrizen sind unterschiedlich lang, und die Zahlen messen Verschiedenes: Die Belege stammen aus Beobachtung an einer laufenden Installation, aus Messung am Client oder aus dem Abgleich mit der Herstellerdokumentation; welcher Weg für eine Zeile gilt, sagt ihre Belegspalte. Bei `claude-code` ist der Beleg überwiegend ein Dokumentenabgleich, bei `openai-codex` durchweg eine Messung. **Ein Dokumentenabgleich belegt `[DOK]`, nicht `[TECHNISCH]` im Sinne einer beobachteten Wirkung.** Die Summen stehen in Abschnitt 3 jedes Packs; Prüfung 31 rechnet sie bei jedem Validatorlauf aus der Matrix nach.
|
|
38
38
|
|
|
39
39
|
## 7a.4 Form und Semantik
|
|
40
40
|
|
|
41
|
-
Ein Client Pack enthält
|
|
41
|
+
Ein Client Pack enthält drei Dateien: die Fähigkeitsmatrix `CLIENT_PACK.md`, die maschinenlesbare Abbildung `manifest.json` und eine erklärende README der Laufzeitschicht unter `root-template/`. Alles Übrige liegt einmal im Kern und wird bei der Installation übersetzt. Dabei gibt es zwei Fälle:
|
|
42
42
|
|
|
43
43
|
**Formtransformation.** Der Inhalt ist derselbe, nur die Schreibweise unterscheidet sich – ein Frontmatter-Feld heißt anders, eine Werkzeugliste ist kommagetrennt statt eingerückt. Das betrifft Regeltexte, Wurzel-Anweisung, Agentenprofil, Skills und die Vorlagen.
|
|
44
44
|
|
|
45
|
-
Die Ladebedingung einer Regel ist dagegen
|
|
45
|
+
Die Ladebedingung einer Regel ist dagegen keine Formfrage, sondern eine zweite Semantikabbildung: Die Kernquelle kennt fünf Ladetrigger, ein Client kennt seine eigene Bedingungssprache. Bei `claude-code` heißt sie `paths` und bindet eine Regel an Glob-Muster; `always_on` und `model_decision` bilden dort auf unbedingtes Laden ab – eine Verschärfung. Ein Ladetrigger ohne Eintrag in der Abbildung lässt die Installation scheitern; er wird nicht verworfen.
|
|
46
46
|
|
|
47
47
|
**Semantikabbildung.** Die Werkzeuge selbst unterscheiden sich. Ein Client trennt Ändern und Anlegen in zwei Werkzeuge, ein anderer nicht; Befehlsverbote greifen hier wörtlich (`Exec(git reset --hard)`) und dort präfixbasiert (`Bash(git reset:*)`); Netzzugriff ist einmal ein Werkzeug mit Muster und einmal zwei ohne. Das betrifft Berechtigungen und Hooks – und damit genau die Regeln, an denen die Kernzusagen hängen.
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
Eine beim Nachziehen vergessene Regel wäre hier eine stille Lücke, während die Fähigkeitsmatrix weiter `[TECHNISCH]` behauptet. Die Abbildung erzwingt deshalb drei Eigenschaften und bricht die Installation ab, wenn eine verletzt ist:
|
|
50
50
|
|
|
51
51
|
| Zusicherung | Warum |
|
|
52
52
|
|---|---|
|
|
@@ -61,6 +61,6 @@ Die werkzeugneutrale Regelmenge, aus der jedes Pack seine Berechtigungen erzeugt
|
|
|
61
61
|
{{EMBED:.koolie/core/framework/runtime/permissions.json:json}}
|
|
62
62
|
## 7a.5 Was das für ein Projekt bedeutet
|
|
63
63
|
|
|
64
|
-
Die Wahl des Client Packs fällt bei der Erstinstallation (`install.py --client`; der Dialog
|
|
64
|
+
Die Wahl des Client Packs fällt bei der Erstinstallation (`install.py --client`; der Dialog fragt sie ab, Kap. 15.2) und wird im Overlay dokumentiert. Bevor ein Pack in Betrieb geht, ist seine Fähigkeitsmatrix zu lesen und jede Kernzusage ohne technische Durchsetzung freizugeben. Ein Wechsel des Clients ist ein eigener Vorgang mit erneuter Bewertung.
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
Ein neues Client Pack durchläuft dieselbe Validierung an einer realen Installation (Roadmap-AP2) mit seiner eigenen Fähigkeitsmatrix. Solange seine Zielversion nicht festgelegt und geprüft ist, gilt es als unbelegt.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## 8.1 Das Trennprinzip
|
|
4
4
|
|
|
5
|
-
Die Wiederverwendbarkeit
|
|
5
|
+
Die Wiederverwendbarkeit hängt an einer Regel: **Ein Projektwechsel tauscht ausschließlich Ebene 4 (Project Overlay); er darf nie Anpassungen am Framework Core erzwingen.** Umgekehrt enthält der Core keine projektspezifische Angabe; wo er Projektwissen braucht, definiert er eine benannte Schnittstelle in Form eines registrierten Platzhalters (`<ALLOWED_PATHS>`, `<TEST_COMMAND>`, `<APPROVAL_ROLE>` …), die das Overlay füllt.
|
|
6
6
|
|
|
7
7
|
## 8.2 Mechanik der Trennung
|
|
8
8
|
|
|
@@ -10,7 +10,7 @@ Die Wiederverwendbarkeit des Frameworks steht und fällt mit einer harten Regel:
|
|
|
10
10
|
|---|---|
|
|
11
11
|
| Platzhalter-Schnittstellen (Anhang 31.3) | Core-Regeln bleiben generisch formulierbar; Projekte füllen Werte ausschließlich im Overlay und in der Berechtigungsdatei |
|
|
12
12
|
| Verschärfungsprinzip (Kap. 25) | Das Overlay darf konkretisieren und verschärfen, nie lockern – Core-Garantien gelten damit projektübergreifend |
|
|
13
|
-
| Getrennte Ablage und Ownership | Core: Framework Owner über Releases; Overlay: Overlay Owner über den Projektprozess; technische Schreibsperren
|
|
13
|
+
| Getrennte Ablage und Ownership | Core: Framework Owner über Releases; Overlay: Overlay Owner über den Projektprozess; technische Schreibsperren: `Write(.koolie/core/**)` für das ganze Kernverzeichnis einschließlich der Skripte, die die Schutzzusagen durchsetzen, dazu Laufzeitschicht und Wurzel-Anweisungsdatei als `deny`; das Overlay sperrt der Schutz-Hook, solange kein Mandat es deckt |
|
|
14
14
|
| Dokumenten-Manifest | Projektwissen wird als registriertes Dokument mit Klasse und Ladeverhalten eingebunden – nie durch Editieren von Core-Dateien (Kap. 17) |
|
|
15
15
|
| Integritätsprüfung | `validate-framework.py` prüft unter anderem, dass die Kernregeln in der Berechtigungsdatei unverändert enthalten sind (`_core_rules_integrity`) und Overlay-Pflichtfelder gefüllt sind (`--strict-overlay`) |
|
|
16
16
|
| Release-Abgleich | Bei Übernahme und Aktualisierung werden Core-Bestandteile byte-gleich aus dem Release übernommen (Adoption Guide, CL-10/CL-11) |
|
|
@@ -21,4 +21,4 @@ Regeln mit gemischtem Charakter werden getrennt: die generische Logik wandert mi
|
|
|
21
21
|
|
|
22
22
|
## 8.4 Nachweis der Trennung
|
|
23
23
|
|
|
24
|
-
Alle versionierten Markdown-Dateien des Kerns – beim Bau dieses Dokuments {{ZAHL:*.md}} – werden bei jedem Validatorlauf automatisiert auf Projektneutralität geprüft (Sperrbegriffs-, E-Mail-, IP-, Hostnamen- und URL-Prüfungen; Kap. 26).
|
|
24
|
+
Alle versionierten Markdown-Dateien des Kerns – beim Bau dieses Dokuments {{ZAHL:*.md}} – werden bei jedem Validatorlauf automatisiert auf Projektneutralität geprüft (Sperrbegriffs-, E-Mail-, IP-, Hostnamen- und URL-Prüfungen; Kap. 26). Der Validator prüft außerdem die Werkzeugneutralität: Kein anweisender Träger des Kerns nennt einen Produktnamen oder einen Pfad, der genau einem Client Pack gehört (Prüfung 14 und 48). Sämtliche variablen Inhalte laufen über das Platzhalterregister; die Overlay-Vorlage ist eine reine Vorlage mit Ausfüllhinweisen und `<TBD>`-Feldern. Das Overlay-Muster *General Development* (`--overlay general`) füllt davon nur Platzhalter, deren Wert eine Sperre ist, und bringt allgemeine, projektneutrale Musterdokumente mit. Synthetische Beispiele sind als solche gekennzeichnet und verwenden offensichtlich fiktive Bezeichner.
|