docs(requirements): add the shared cache contract as subtree S8 of 001

Decision 43 records the core cache concept the operator settled on
2026-11-07 (owner IAM) as far as the orchestrator consumes it: the
image fetches models, voices and source archives through an optional
INFINITO_ARTEFACT_BASE with unchanged sha256 pins, speech uses the core
svc-ai-speech role only when configured, and make orchestrator-install
stays the standalone path. S8 follows S7 with its own criteria.

🎯 Fix: 95 %
💥 Break: 1 %
💸 Cost: 100 %
⏱️ Time: –
🛡️ Security: 100 %
🏆 Score: 94
🚦 Gate: ✅ 90/5, cost and time <= 100, security 100 %

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kevin Veen-BirkenbachandClaude Opus 5.5 committed 2026-11-07 18:56:40 +00:00
1 parent a1d0397344
commit dbd9ec3311
1 file changed
+21 -2
+21 -2
View File
@@ -124,7 +124,7 @@ from three views down to any agent, branch or artefact.
22. **Organisation update**: a new skill `kvb-org-update` tells every agent 22. **Organisation update**: a new skill `kvb-org-update` tells every agent
and client which skills changed and how to use them, as one and client which skills changed and how to use them, as one
`newsletter` per update; phase 1 announces the radio change through it. `newsletter` per update; phase 1 announces the radio change through it.
23. **Phase 5** (23 to 42 operator-confirmed 2026-11-07): the console 23. **Phase 5** (23 to 43 operator-confirmed 2026-11-07): the console
output shows under "Ausführen" (Run); a deny picks its channel (default output shows under "Ausführen" (Run); a deny picks its channel (default
`post`); agents request auto-approval rules through the `post`); agents request auto-approval rules through the
inbox; the rules form and the Ort fields never overlap; the radio plays inbox; the rules form and the Ort fields never overlap; the radio plays
@@ -222,6 +222,14 @@ from three views down to any agent, branch or artefact.
Steuerung → Controls, Ausführen → Run). Kept: trigger phrases in skill Steuerung → Controls, Ausführen → Run). Kept: trigger phrases in skill
descriptions that quote what the operator says in German, and the rule descriptions that quote what the operator says in German, and the rule
that agents answer the operator in the operator's language. that agents answer the operator in the operator's language.
43. **Shared cache** (core concept settled by the operator 2026-11-07
18:40, owner IAM, report `/tmp/shared-model-cache-base-20261107.md`):
the image build fetches every model, voice and source archive from
`${INFINITO_ARTEFACT_BASE}/<host>/<path>` with the same sha256 pins, and
from the real upstream when the build arg is unset. Speech uses the
core role `svc-ai-speech` when its URL is configured, else the
in-container whisper and piper. `make orchestrator-install` without any
core stack stays the standalone path. Subtree S8, after S7.
## Approach ## Approach
@@ -294,6 +302,7 @@ flowchart TD
S4 --> S5["🗳️ S5 Tasks with asks and choices"] S4 --> S5["🗳️ S5 Tasks with asks and choices"]
S5 --> S6["🧱 S6 Firewall and settings writes"] S5 --> S6["🧱 S6 Firewall and settings writes"]
S6 --> S7["📈 S7 Resources charts"] S6 --> S7["📈 S7 Resources charts"]
S7 --> S8["🗄️ S8 artefact base URL, optional core speech"]
end end
subgraph G["🔁 Each subtree"] subgraph G["🔁 Each subtree"]
G1["🔴 Red tests"] --> G2["🛠️ Change"] G1["🔴 Red tests"] --> G2["🛠️ Change"]
@@ -304,7 +313,7 @@ flowchart TD
GF -- "✏️ changes" --> G2 GF -- "✏️ changes" --> G2
GF -- "👍 fits" --> G5["🔀 Commit, merge into master, next subtree"] GF -- "👍 fits" --> G5["🔀 Commit, merge into master, next subtree"]
end end
S7 --> D2["🏁 install-skills-master row, push hand-over"] S8 --> D2["🏁 install-skills-master row, push hand-over"]
``` ```
## Acceptance Criteria ## Acceptance Criteria
@@ -594,6 +603,16 @@ flowchart TD
(unit test); host samples come from the host unit's file, not from the (unit test); host samples come from the host unit's file, not from the
container. container.
### Phase 6: shared cache (S8)
- [ ] With `INFINITO_ARTEFACT_BASE` set, every `ADD` and clone of the image
build uses `<base>/<host>/<path>` and the unchanged sha256 pins; unset,
the build uses the upstream URLs (test over the rendered Dockerfile).
- [ ] With a configured `svc-ai-speech` URL the hub sends STT and TTS there;
without it the in-container engines answer (unit test with a stub).
- [ ] `make orchestrator-install` succeeds in a scratch HOME without any core
stack.
### Tests ### Tests
- **Unit** - **Unit**