# K2SO 0.36.9 — Workspace Knowledge & Persona editors point at the source files

The two AIFileEditor surfaces in Settings — **Workspace Knowledge** and the **agent Persona** editor — were each editing the *wrong* file: a compiled output that K2SO regenerates on every launch. So your edits would seem to take, then vanish on the next regen pass. This release fixes that and also tells the AI inside the editor where the real source files live.

## What was wrong

K2SO compiles a single SKILL.md per agent (and one for the workspace) from two source files:

- `.k2so/PROJECT.md` — workspace-level knowledge (tech stack, conventions, build commands, key paths)
- `.k2so/agents/<agent>/AGENT.md` — that agent's role / persona / standing orders

The compiled SKILL is then symlinked or marker-injected into every harness file the workspace might encounter — `CLAUDE.md`, `AGENTS.md`, `GEMINI.md`, `.cursor/rules/k2so.mdc`, `.goosehints`, `.opencode/agent/k2so.md`, `.pi/skills/k2so/SKILL.md`. That fan-out is by design: write the agent's protocol once, every CLI LLM tool reads the same source of truth.

The two editors were pointed at the wrong layer:

1. **Workspace Knowledge** was opening `.k2so/skills/k2so/SKILL.md` — the compiled output.
2. **Agent Persona** was a four-tab editor mixing AGENT.md (source) with the agent's CLAUDE.md and the workspace CLAUDE.md (both compiled outputs).

Both surfaces had bidirectional adoption logic that *tried* to detect drift in the compiled file and commit it back to the source — but the user-facing flow was confusing ("which tab is the truth?") and the source/output mismatch led to silent overwrites.

## What changed

**Workspace Knowledge** now opens `.k2so/PROJECT.md` directly. On close, it triggers `k2so_agents_regenerate_workspace_skill` so your edits propagate to every harness file in one pass.

**Agent Persona** is now a single-file editor pointed at `AGENT.md`, mirroring the Wakeup editor's shape. The four-tab layout is gone; CLAUDE.md / AGENTS.md / GEMINI.md / etc. are no longer presented as edit surfaces because they're not — they're compiled outputs.

**Compiled SKILL.md gets a footer.** Every generated SKILL (per-agent and workspace-level) now ends with a "How to update this skill" section that cites absolute paths to the source files:

```
## How to update this skill

This SKILL is auto-generated by K2SO from source files. Your edits to
this file will be overwritten on the next regen — edit the sources
instead and K2SO will recompile.

- Workspace knowledge — edit `/abs/path/.k2so/PROJECT.md`
- Your role / persona / standing orders — edit `/abs/path/.k2so/agents/<you>/AGENT.md`

If the user asks you to update workspace knowledge or your persona,
propose the edit and confirm before writing — these files affect every
future wake of every agent.
```

So the AI living inside any harness now has a stable contract: SKILL is read-only context, source files are where actual changes go.

## What's not affected

- **Existing PROJECT.md / AGENT.md content** — preserved as-is. The new editors just open the file you already had.
- **Existing self-improvement drift adoption** — still works. If an agent writes inside the SKILL.md `SOURCE_PROJECT_MD` or `SOURCE_AGENT_MD` markers below `<!-- K2SO:END -->`, that drift is still committed back to the right source file on the next regen, with the same mtime/hash conflict-resolution logic as before. The footer just adds an explicit signal that direct source-file edits are preferred.
- **Wakeup editor (Settings → Heartbeats)** — unchanged. Was already a single-file source-edit surface; that shape is what the Persona editor now mirrors.

## Upgrade

Use the in-app updater (Settings → General → Check for updates) or download the DMG from the GitHub release page below.
