Name the sources
Three ways, one build:--experience and load_experience() win over the brief’s Experience line, as --harness wins over its Harness line; with nothing loaded, a fresh build takes the brief’s items. A reference takes one of these forms:
Loading resolves the reference, confirms the source exists and is readable, pins it as it is on disk and prints one line per source:
kapso experience add line that makes it; the hosted gate without its key is refused with where the key goes. On a detached build the sources are loaded before the fork, so a refusal reaches you, not the child’s log.
What the sessions see
Before the first session, the engine stages the serving under.kapso/serving/ in the campaign: one clone per bank at its pinned head, intro.md, the serving record, and, as the sessions run, their pull log. The ideation and implementation sessions read the intro after the harness’s guidance:
bank_index lists the whole eligible set, in reliability order, with no cap and no relevance cut; the reading agent decides what to open. A corpus adds the wiki_idea_search and wiki_code_search tools over its pages; Leeroopedia mounts its own server. The judge gets none of them: it scores what the evaluation printed, and records which cards the attempt leaned on as cards_load_bearing.
Three things the frame does on every read:
- Scope. Under a harness,
minelists and opens the cards scopeddomainorharness:<name>; a card outside is refused by name with the reason (out of scope under harness:trading; mine:all serves every card you measured). A bank you read, the hosted gate and an index serve everything they hold. - Quarantine, silently. Cards in the decoy registry and cards in non-serving states (
cold,retired,superseded) never appear. - Contradictions, named. Two cards that declare they contradict each other are named as a pair, never presented side by side as if they agreed.
learning.retriever.probe_budget per campaign. When two sources hold a card of one name, bank_get_card(cards, source=) says which; the pull log names the source of every row served.
What the campaign records
The same list, in every record:learn() harvests the serving record and the pull log with the campaign, so a lesson is credited to the source its card was read from, and kapso experience list shows your bank’s head beside what a campaign was served.
Resume
A barekapso build --output campaign --resume is served what the launch was: the record’s list, each bank re-pinned at its recorded head even when the bank moved since, each index at its id. A resume that names a different list, by flag or by load, is refused by name; a source that is gone is refused with the way back; an index re-ingested since the launch is refused, since a campaign is served the corpus it started with.
Your own session
The same sources reach the coding-agent session you work in throughkapso-mcp, Kapso’s MCP server:
--experience, the server serves what the project’s kapso-config.yaml lists under experience.session_sources ([mine:all] is the line kapso learn offers once a campaign is banked): sessions, not builds, which load what their brief or flags name. --harness gives the session its coordinate, the name mine serves cards by, as a build’s harness does; without it the coordinate is none. The session is staged under learning.serving.session_root, one directory per server process, and removed when the server exits; the intro naming the sources is the server’s instructions, so the session sees what it is served on connect. The gates a directory supports (research, repo_memory, experiment_history) ride along; one that cannot be served is named on stderr with its reason. See Use the gates from your own coding agent.
What this machine has
kapso experience update is the network step loading never takes: mine takes its remote’s main, a bank you read at a branch or HEAD is fetched again, a tag or a commit never moves; a running campaign keeps its pins. kapso experience remove <ref> deletes a bank you read or an index; your bank, the hosted gate and a bank by path are not the store’s to remove.
Related
Add a source
Your bank, the hosted gate, a repository or a question ingested into an index
Share a bank
Attach a remote to your bank; read another team’s
What learn produces
How learn() fills your bank
Experience reference
Every form, record, variable and config key
pip install leeroo-kapso · Every page as plain text: llms.txt.