OpenKKnD/HEAVY-SESSION.md
2026-09-14 08:57:48 +02:00

177 lines
9.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# OpenKKnD — Local / Heavy Session Instruct
**Tree:** `PATH[OpenKKnD]``$HOME/git/src/hacktivism/openkknd`
**Product:** Pitchwell (original RTS greenfield) — **not** playable Godot `openkknd2` (TODO309)
**Audience:** one local-capable agent session (any host tooling; vision OK when needed)
**Updated:** 2026-09-14 (harness- and model-agnostic kickoff)
This file is the **task SoT** for OpenKKnD work. It does **not** depend on a particular chat product (Grok TUI, Jan, Osaurus UI, …) or on a particular model id. The human picks the runtime/model; the agent follows the rules below.
---
## 0. Stop-line (always)
- No Nintendo / C&C brand names; no KKnD assets or rips (**IP-FENCE**)
- No live/prod login, no host mutation, no **other** repos without **Freigabe this session**
- **Exception — this repo only:** after a successful commit on `hernani/openkknd`, **always `git push`** as `openkknd-agent` (see §4)
- Kitchen + Bonfire/Lemmy publish freigabe already (STATUS); Castopod live still blocked (404)
- Prefer **local** inference and zero-cloud automation; do not call paid/cloud frontier APIs unless the human explicitly lifts that for this session
- **Do not pull, download, or start additional models** this stretch — use whatever is already selected/running; do not overload hosts. Optional orientation only: `$HOME/git/llm/llm-work-logs/grok-work-log-enc/BEST.md` (do not re-seed models from it)
---
## 1. Session boot (do first)
1. Confirm cwd / tree is `$HOME/git/src/hacktivism/openkknd` (or resolve via `python3 $HOME/git/llm/llm-configs/bin/path-lookup.py OpenKKnD`).
2. Read in order: `README.md``docs/IP-FENCE.md``kitchen/STATUS.md``kitchen/PLAYBOOK.md` → this file.
3. Before claiming game/smoke done: `./scripts/smoke/run_all.sh` → expect **RUN_ALL PASS**.
Sticky facts to keep across turns/compacts: tree path · `STATUS=FLAMEWAR-PLATFORM-LOOP` · current `round` · smoke PASS/FAIL · `openkknd-agent` · work-log tip.
Harness notes (optional, only if that tool exists in the session): local-only / Heavy mode if available; model switch only when the human asks. Ignore slash commands that are not present in your UI.
---
## 2. Runtime roles (no fixed model ids)
Do **not** hard-code model names. Pick by **role** from whatever the human/session already has loaded:
| Role | When | Constraint |
|------|------|------------|
| default / coding | most edits, docs, kitchen drafts | already-running local model |
| shell / git | commits, patches, path lookups | local coder-capable if available; else same as default |
| vision | asset / cinematic QA only | switch only when human asks; amanita / rabbithole Ollama RT if used |
| tiny / smoke probe | short checks | any small local already up |
**RT / Ollama runtime states** (if used at all): only **amanita** and **rabbithole**. Not firecuda, not deltoid for this work.
Kitchen temps (if the stack exposes them): `kitchen/LLM.md` (talk **1.05** / patch **0.30.5**).
Operator shortlists and catalog ids (bonsai, Jan, …) live outside this repo (`super-sparmodus`, host skills). This instruct stays valid if those change.
---
## 3. Work-log (mandatory, own tree)
**SoT:** `$HOME/git/llm/llm-work-logs/openkknd-work-log-enc` (git-crypt `**`; cleartext README/INDEX only).
Schema order (from credit-enc RULES §2): title → Menschenaufwand → Aufgabe → Ergebnis → Guthaben → Statistik → Methodik → Offen.
Statistik: Git/Dateien, Bytes, Kommandos, Webabrufe, Gesehen, Geschrieben, Git-Geschichte.
Unlock/sign with agent FPR `F3EA2FB493FC3F5E627B4AD6EEBD77CC3686B26A` (also Hernâni).
Never put secrets in cleartext work-log files.
---
## 4. Git / push / Forgejo agent
| Item | Rule |
|------|------|
| Commit | Prefer `local-llm-git-worker.py` / session commit helper when available; **never push from the commit worker** |
| Author | Model commits: `GIT_AUTHOR_NAME=local-model/<api-id>` · `GIT_AUTHOR_EMAIL=local-model+<api-id>@openkknd.agent.local` (api-id = runtime model id). **Not** `hernani`, not bare `openkknd-agent`. Author ≠ push-auth |
| Dialect | OpenKKnD: `docs:`, `kitchen:`, `sim:`, `flamewar:` (§0.27) |
| Remote | `ssh://git@git.hacktivism.ch:9200/hernani/openkknd.git` (private) |
| Push | **Always** after successful commit on **this** repo. No mass multi-tree push. Other repos stay Freigabe-gated. |
| Agent user | Forgejo **`openkknd-agent`** — collaborator **write** on `hernani/openkknd` only; signed commits via Sequoia/GPG FPR above |
| Agent push how | Prefer HTTPS as agent: token in `…/openkknd-agent/access-token.txt` (scopes write:repository). No agent SSH key yet (unlike combo-bot). Laptop SSH `:9200` currently authenticates as **hernani** — OK for owner push; for agent identity use HTTPS+token. |
| Agent secrets | `$HOME/git/admin-logs/local/koopa-admin-secrets-enc/koopa/home-hernani/koopa-forgejo/agents/` (`users.env` + `openkknd-agent/`) — **never print PW/token** |
Game goal under Freigabe stretches: keep foundation toward a **startable** Pitchwell / KKnD*-style clone (original assets only).
---
## 5. Parent TODO + what is open
**Parent TODO:** **TODO=356** (`openkknd-heavy-flamewar-r12`) · **REF:** `REF356-openkknd-heavy-flamewar-r12` · tip **k=319** unchanged.
Combo with merchant strings: **TODO=355** + **TODO=356** (spec `…,355,356`).
`OPEN-2026-09-05-pitchwell-kitchen.md` = **DONE_CLOSE**.
Live kitchen **STATUS:** `FLAMEWAR-PLATFORM-LOOP` · stop at **≥12** (read `round` from disk — do not invent).
**Stall locks (2026-09-14):**
1. After a completed triad for round **r**, **yes** bump `STATUS.round` to **r** on disk before claiming progress.
2. **No** new milestones beyond R→≥12 / DONE|GIVE_UP.
3. Triad template: **ACTIVITY** append + outbox `kitchen/outbox/flamewar/*-r{r}-*` + **AGENT_LOG** line + **STATUS** update.
4. **Verify** `kitchen/STATUS.md` on disk before any round claim.
Useful clusters: flamewar R3→≥12, Castopod draft-only while 404, outbox drafts, docs/assets hygiene, smoke after game edits, startable sim foundation.
---
## 6. 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`; draft → `kitchen/outbox/flamewar/`; publish only freigegebene channels
- Update `kitchen/STATUS.md` + `kitchen/AGENT_LOG.md` every turn
- Castopod: drafts only while site/API 404
### B — Game / docs / IP-FENCE / economy
- `docs/GAMEPLAY.md`, `FACTIONS.md`, `IP-FENCE.md`
- `game/sim/` + `scripts/smoke/economy_smoke.py`
- After edits: `./scripts/smoke/run_all.sh`**RUN_ALL PASS**
### C — Assets / cinematics
- Original / CC only; briefings ≥1280×720; vision model for QA when human enables it
- No third-party game asset dumps
### D — Outbox publish (Freigabe-gated)
- Bonfire / Lemmy: freigabe kitchen fire — use live URLs from STATUS
- Forgejo drafts in outbox unless Freigabe commit
- Never invent Lemmy/Bonfire URLs
### E — Tooling / smoke / git hygiene
- Keep `scripts/smoke/*` green
- Path resolve: `python3 $HOME/git/llm/llm-configs/bin/path-lookup.py OpenKKnD`
- Work-log entry after meaningful stretches
---
## 7. Suggested work order (one session)
1. Boot (§1); confirm tree + STATUS `round`
2. Read STATUS/PLAYBOOK; note last live post IDs
3. **Cluster A** or **B** (startable foundation) — one stretch
4. Re-run smoke if B/E touched; fence-clean before publish
5. Publish only freigegebene channels; Castopod stays draft
6. Append **openkknd-work-log-enc** entry; STATUS + AGENT_LOG
7. End: Freigabe commit if asked; then **always push** this repo as `openkknd-agent` (§4)
---
## 8. 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 |
| `docs/IP-FENCE.md` | Allowed / forbidden |
| `scripts/smoke/run_all.sh` | Headless + fence + economy |
| `$HOME/git/llm/llm-work-logs/openkknd-work-log-enc` | Own work-log (git-crypt) |
| `…/koopa-forgejo/agents/openkknd-agent/` | Agent GPG + token (enc secrets) |
---
## 9. Done when
- Next flamewar round(s) drafted + logged (toward ≥12), **or** Cluster B/C/E with **RUN_ALL PASS** / clearer startable foundation
- STATUS/AGENT_LOG + work-log match reality (no invented live URLs)
- Stop-line held; this-repo push done after commit; no extra models loaded by the agent
---
## 10. Model kickoff (paste as first user line)
Harness- and model-agnostic — paste into whatever session is already on a local model:
```text
OpenKKnD local session: read HEAVY-SESSION.md then kitchen/STATUS.md + PLAYBOOK.md. Tree $HOME/git/src/hacktivism/openkknd (Pitchwell; not openkknd2). IP-FENCE. No new model pulls; no other-repo/host mutation without Freigabe. After commit on hernani/openkknd always push as openkknd-agent. Work-log openkknd-work-log-enc. Prefer local tools; no cloud frontier APIs unless human lifts that. Smoke ./scripts/smoke/run_all.sh before claiming game done. Parent TODO=356 (REF356). Continue STATUS FLAMEWAR-PLATFORM-LOOP toward round ≥12 or advance startable sim foundation — pick one cluster and execute. Author=local-model/<api-id>; always push as openkknd-agent.
```