<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OpenLoci</title><link>https://openloci.org/</link><description>Recent content on OpenLoci</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://openloci.org/index.xml" rel="self" type="application/rss+xml"/><item><title>Quick Start</title><link>https://openloci.org/quick-start/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openloci.org/quick-start/</guid><description>&lt;h2 id="installation">Installation&lt;/h2>
&lt;p>Requires Python 3.10+. &lt;a href="https://github.com/astral-sh/uv">uv&lt;/a> recommended.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>pip install openloci
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Or with uv:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>uv add openloci
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h2 id="generate-a-palace">Generate a Palace&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Base template — no skin&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>openloci new my-project
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># With a skin&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>openloci new my-investigation --skin xfiles
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>openloci new my-startup --skin sv
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This creates a directory at &lt;code>my-project/&lt;/code> containing &lt;code>The Vestibule/&lt;/code> and &lt;code>The Palace/&lt;/code> with all nine rooms.&lt;/p>
&lt;hr>
&lt;h2 id="explore-your-palace">Explore Your Palace&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># List available skins&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>openloci skins
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Show room map for a skin&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>openloci rooms xfiles
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Inspect an existing palace&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>openloci info ./my-investigation
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h2 id="development-install">Development Install&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>git clone https://github.com/mrenoch/OpenLoci
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cd OpenLoci
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>uv venv &lt;span style="color:#f92672">&amp;amp;&amp;amp;&lt;/span> uv pip install -e &lt;span style="color:#e6db74">&amp;#34;.[dev]&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Run tests&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>pytest tests/ -v
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># CLI&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>openloci --help
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;h2 id="render-the-journal">Render the Journal&lt;/h2>
&lt;p>Each palace includes a Hugo journal for rendering session notes as a browsable site. To run it locally:&lt;/p></description></item><item><title>Palace Structure</title><link>https://openloci.org/palace-structure/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openloci.org/palace-structure/</guid><description>&lt;p>Every generated palace has two top-level directories:&lt;/p>
&lt;pre tabindex="0">&lt;code>my-palace/
├── The Vestibule/ ← global config — the threshold before the palace
│ ├── README.md ← entry point; read this first
│ ├── Characters/ ← one file per character/agent
│ ├── Rooms/ ← room descriptions and atmosphere
│ ├── Rules/
│ │ └── master_prompt.md ← DM instructions for LLM sessions
│ └── Journal/ ← Hugo site for rendering session notes
└── The Palace/ ← nine rooms, prefixed by function
 ├── intake_*/
 ├── build_*/
 ├── ops_*/
 ├── collab_*/
 ├── meet_*/
 ├── think_*/
 ├── priv_*/
 ├── pitch_*/
 └── retro_*/
&lt;/code>&lt;/pre>&lt;hr>
&lt;h2 id="the-nine-rooms">The Nine Rooms&lt;/h2>
&lt;p>Two parallel prefix systems make the palace self-documenting across any skin:&lt;/p></description></item><item><title>Skin Authoring Guide</title><link>https://openloci.org/skins/authoring/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openloci.org/skins/authoring/</guid><description>&lt;p>A skin is a directory in &lt;code>templates/skins/&lt;/code> that provides a cultural frame for the Clue chassis. The nine rooms stay fixed; the skin supplies names, characters, atmosphere, and defaults.&lt;/p>
&lt;hr>
&lt;h2 id="directory-structure">Directory Structure&lt;/h2>
&lt;pre tabindex="0">&lt;code>templates/skins/
└── my-skin/
 ├── skin.json ← skin metadata and room map
 ├── cookiecutter.json ← template variables
 └── {{cookiecutter.palace_name}}/
 ├── The Vestibule/
 │ ├── README.md
 │ ├── Characters/
 │ │ ├── ceo_{name}.md
 │ │ ├── cro_{name}.md
 │ │ ├── cto_{name}.md
 │ │ └── ...
 │ └── Rules/
 │ └── master_prompt.md
 └── The Palace/
 ├── intake_{room-name}/
 │ └── README.md
 ├── build_{room-name}/
 │ └── README.md
 └── ... (all nine rooms)
&lt;/code>&lt;/pre>&lt;hr>
&lt;h2 id="skinjson">&lt;code>skin.json&lt;/code>&lt;/h2>
&lt;p>Defines the skin&amp;rsquo;s identity, room names, and character roster.&lt;/p></description></item><item><title>Philosophy</title><link>https://openloci.org/philosophy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openloci.org/philosophy/</guid><description>&lt;h2 id="the-shell-game-constraint">The Shell Game Constraint&lt;/h2>
&lt;p>&lt;em>A session that leaves no files did not happen.&lt;/em>&lt;/p>
&lt;p>The Shell Game is a podcast about AI and labor — its first episode landed on Radiolab — built around the premise that you cannot trust an agent that leaves no receipts. An AI that works invisibly and leaves nothing behind is indistinguishable from an AI that did nothing.&lt;/p>
&lt;p>OpenLoci is built on this constraint. Every significant session must leave material evidence: a handoff note, a summary, a decision record, a revised document. The palace grows through use, not intention. Traces are not optional — they are the work.&lt;/p></description></item><item><title>Contributing</title><link>https://openloci.org/contributing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://openloci.org/contributing/</guid><description>&lt;p>OpenLoci is GPL-3.0. The spec is open. Contributions are welcome.&lt;/p>
&lt;h2 id="what-we-need-most">What We Need Most&lt;/h2>
&lt;p>&lt;strong>Skins&lt;/strong> are the primary contribution surface. A skin is a directory in &lt;code>templates/skins/&lt;/code> containing a room map, character files, and a master prompt. If you have a cultural frame you want to run a project through, build it and open a PR.&lt;/p>
&lt;p>See the &lt;a href="https://openloci.org/skins/authoring/">Skin Authoring Guide&lt;/a> for the full spec.&lt;/p>
&lt;p>&lt;strong>Bug reports and feature requests&lt;/strong> go in &lt;a href="https://github.com/mrenoch/OpenLoci/issues">GitHub Issues&lt;/a>.&lt;/p></description></item></channel></rss>