# OpenKKnD — Heavy / Super-Sparmodus Session Instruct **Tree:** `PATH[OpenKKnD]` → `$HOME/git/src/OpenKKnD` (macOS: `src/openkknd` same inode) **Product:** Pitchwell (original RTS greenfield) — **not** playable Godot `openkknd2` (TODO309) **Audience:** one local-capable session (vision OK) under Heavy / Sparmodus **Updated:** 2026-09-14 (from kitchen STATUS + models probe) --- ## 0. Stop-line (always) - No Nintendo / C&C brand names; no KKnD assets or rips - No `git push`, no live/prod login, no host mutation without **Freigabe this session** - Kitchen + Bonfire/Lemmy publish freigabe already (STATUS); Castopod live still blocked (404) - Prefer local / `API_CALLS=NONE` workflows; Heavy = **zero Cloud-Grok** --- ## 1. Session boot (do first) ```text /w super-sparmodus heavy # or: status / set --profile … /model # slash is /model (/m) — there is NO /models slash # CLI inventory: grok models ./scripts/smoke/run_all.sh # expect RUN_ALL PASS before claiming game/smoke done ``` Read in order: `README.md` → `docs/IP-FENCE.md` → `kitchen/STATUS.md` → `kitchen/PLAYBOOK.md` → this file. Sticky: `COMPACT_KEEP` → `PATH[OpenKKnD]` · `STATUS=FLAMEWAR-PLATFORM-LOOP` · `round` · smoke PASS/FAIL. --- ## 2. Models (Heavy shortlist + vision) Heavy shortlist (Super-Sparmodus; snapshot): | Profile | Catalog id | Host / note | |-------------|-------------------------|--------------------| | speed | `jan-gemma4-v2` | Jan — default text | | quality | `jan-gemma4-opus48` | Jan | | shell_git | `08-am-qwen3-coder-latest` | amanita Ollama | | foundation | `24-am-gemma3-4b` | amanita (tiny+vision) | | quality_alt | `jan-maral-mythos-9b` | Jan | **Vision (completion + vision caps):** not a dedicated Heavy profile — switch explicitly: | Catalog id | Model | Host | |----------------------|--------------|-------------| | `10-am-gemma3-12b` | `gemma3:12b` | amanita `:11434` | | `07-rh-gemma3-12b` | `gemma3:12b` | rabbithole `:11436` | | `24-am-gemma3-4b` | `gemma3:4b` | amanita (also foundation) | Recommended Heavy vision session: `/model 10-am-gemma3-12b` (or `07-rh-gemma3-12b`). Shell/patch stretches: `/model 08-am-qwen3-coder-latest`. Talkative kitchen: see `kitchen/LLM.md` (temp **1.05** talk / **0.3–0.5** patch). Switch helpers: ```bash python3 $HOME/git/llm/llm-configs/bin/super-sparmodus.py set --profile speed|quality python3 $HOME/git/llm/llm-configs/bin/super-sparmodus.py set --model 10-am-gemma3-12b ``` --- ## 3. What is open (no dedicated parent TODO) `OPEN-2026-09-05-pitchwell-kitchen.md` = **DONE_CLOSE** (historical still-open: dossiers mirror, Lemmy-bot freigabe, optional persona sync). Live kitchen **STATUS:** `FLAMEWAR-PLATFORM-LOOP` · **round 2** · stop at **≥12**. Still useful work (clustered below): flamewar R3→≥12, Castopod blocked notes, outbox drafts, optional dossiers stub, docs/assets hygiene, smoke after any game edit. --- ## 4. TODO clusters (pick one per stretch) ### A — Kitchen / flamewar / platform loop (default) - Advance `FLAMEWAR-PLATFORM-LOOP` rounds **3 … ≥12** - Voices: F1 `@copyleft-crucible`, F2 `@permissive-prickle` (+ kitchen P* per PLAYBOOK) - Append `kitchen/ACTIVITY.md` (visible, civil, IP-FENCE clean) - Draft → outbox `kitchen/outbox/flamewar/` then publish only channels with Freigabe - Update `kitchen/STATUS.md` + `kitchen/AGENT_LOG.md` every turn - Castopod: keep drafts; **do not** claim live episode while site/API 404 ### B — Game / docs / IP-FENCE / economy - `docs/GAMEPLAY.md`, `FACTIONS.md`, `IP-FENCE.md` — keep fence truthful - `game/sim/` + `scripts/smoke/economy_smoke.py` - After edits: `./scripts/smoke/run_all.sh` must **RUN_ALL PASS** - Notes under `kitchen/patches/` when D1–D3 change ### C — Assets / cinematics - `docs/CINEMATICS.md`, `assets/` — original / CC only, briefings ≥1280×720 - Vision model useful for asset QA (screenshots, stub frames) - No third-party game asset dumps ### D — Outbox publish (Freigabe-gated) - Bonfire / Lemmy: freigabe kitchen fire (STATUS) — use live URLs already logged - Forgejo issue/commit **drafts** only in outbox unless Freigabe commit (`/g`) - Dossiers: stub until Auth/TLS confirmed; do not invent URLs - Never invent Lemmy/Bonfire URLs; copy from STATUS/AGENT_LOG ### E — Tooling / smoke / git hygiene - Keep `scripts/smoke/*` green - Git: Must §7 via git-worker / `/g` = Freigabe commit only; **never push from worker** - Path resolve: `python3 $HOME/git/llm/llm-configs/bin/path-lookup.py OpenKKnD` --- ## 5. Suggested work order (one Heavy session) 1. Boot Heavy + `/model` (vision if asset/UI QA, else quality or shell_git) 2. Read STATUS/PLAYBOOK; note `round` and last live post IDs 3. **Cluster A:** draft R3 (or next) kitchen + F1/F2 outbox; append ACTIVITY/AGENT_LOG; bump STATUS.round 4. Re-run smoke if any B/E touch; fix fence hits before publish 5. Publish only freigegebene channels; leave Castopod as draft + blocker note 6. End: STATUS + AGENT_LOG; optional `/g` if human Freigabe commit; no push --- ## 6. Key paths | Path | Role | |------|------| | `kitchen/STATUS.md` | Loop state, round, freigabe, live URLs | | `kitchen/PLAYBOOK.md` | Channels + play order | | `kitchen/ACTIVITY.md` | Append-only kitchen voices | | `kitchen/AGENT_LOG.md` | Turn log | | `kitchen/PERSONAS.md` / `EXPERTISE.md` / `LLM.md` | Voices + knobs | | `kitchen/outbox/` | Publish drafts | | `docs/IP-FENCE.md` | Allowed / forbidden | | `scripts/smoke/run_all.sh` | Headless + fence + economy | --- ## 7. Done when - Next flamewar round(s) drafted + logged (toward ≥12), **or** Cluster B/C/E change with **RUN_ALL PASS** - STATUS/AGENT_LOG match reality (no invented live URLs) - Stop-line held; no push without Freigabe --- ## 8. Model kickoff (paste as first user line) See one-liner in chat after this file lands; keep this file as the standing brief.