# Anthrocybernetics CookieBlob Preview — Build SOP v0.1

**Project:** Anthrocybernetics Core Workbook CookieBlob preview  
**Build type:** Standalone, dependency-free HTML archive / interactive workbook front door  
**Version:** 0.1  
**Status:** Initial preview build  
**Date:** 2026-08-04  
**Canonical source:** https://zo.pub/anthrocybernetics/anthrocybernetics-core-workbook

---

## 1. Product decision

Convert the Anthrocybernetics Core Workbook and its applied modules into a CookieBlob-style browser room. The HTML is a navigable preview and reading instrument, not a replacement for the canonical Markdown workbook.

The preview should make the project approachable without flattening its discipline:

> enter → orient → read → route through the Five Foci → annotate → transmit → export

The result is a single `index.html` that can be opened locally, served as a static file, or placed in a zo.pub collection. It must not require a build server, external JavaScript package, image asset, or network request at runtime.

---

## 2. Scope of v0.1

### Included

- One standalone `index.html`.
- The 16 core workbook chapters.
- The 16 applied modules.
- Four reference rooms: Contents, Changelog, Source SOP, and the original visual summary.
- Archive-room navigation grouped into Core Workbook, Applied Modules, and Reference.
- Search across room titles, summaries, and source text.
- Five Foci navigation: Phase, Field, Arc, Form, and Lattice.
- Reading progress and per-room completion state.
- Local notes attached to individual rooms.
- Transmission rail for visited rooms, selected foci, completed rooms, notes, imports, exports, and reset events.
- CookieBlob-style `localStorage` persistence under a project-specific key.
- JSON seed export/import.
- Explicit reset confirmation.
- Previous/next room navigation and keyboard shortcuts.
- Evidence card distinguishing grounded, hypothesized, and interpretive material.
- Responsive layout for desktop and narrow screens.
- A local source mirror and a Python rebuild script so the HTML can be regenerated from the published workbook.

### Excluded

- Server-side accounts, authentication, or shared notes.
- Claims that the browser preview is authoritative over the Markdown source.
- Runtime fetching from zo.pub or any other external origin.
- Automated fact-checking or conversion of interpretive language into scientific claims.
- A scoring system for practitioners, relationships, or epistemic worth.
- Cross-origin iframe communication.
- A full CMS, editor, or course-management system.
- Images, fonts, external libraries, analytics, or tracking.

These exclusions keep the preview portable, inspectable, and safe to publish as a static artifact.

---

## 3. Source and provenance contract

The source mirror lives under `source/anthrocybernetics-core-workbook/` and is fetched from the published collection. The generator reads the source mirror and embeds its content into `index.html`.

Source rules:

1. The published workbook remains the canonical human-readable source.
2. `build.py` is the reproducible transformation layer.
3. The generated HTML must not contain hidden runtime fetches or remote execution.
4. Rebuilding after a source update must replace embedded room content rather than editing the generated HTML by hand.
5. The generated footer must identify the room count, local-state behavior, and canonical Markdown status.
6. Reference links may open in a new tab, but room reading must work with the network disconnected after the HTML is loaded.
7. Any future module must be added to `MODULE_META` before it can appear in the archive.

### Current source inventory

- Core chapters: 16
- Applied modules: 16
- Reference rooms: 4
- Total embedded rooms: 36

---

## 4. CookieBlob state contract

Use a unique namespace so this preview cannot collide with CookieBlob RPG, Archive Tree, or other rooms.

```js
const STORAGE_KEY = "cookieblob_anthrocybernetics_preview_v01";
```

Canonical state shape:

```js
{
  version: "0.1",
  room: "opening-and-orientation",
  visited: [],
  completed: [],
  notes: {},
  transmissions: [],
  focus: "Phase",
  updated_at: null
}
```

### State rules

1. `load` parses defensively and falls back to a fresh state if local JSON is invalid.
2. Imported seeds must match version `0.1` and the expected collection shape.
3. Imported room IDs are filtered against the embedded room registry.
4. Notes are keyed by room ID and remain local to the browser.
5. Transmissions are capped to the most recent 80 entries.
6. Each meaningful mutation updates `updated_at`.
7. Player-entered notes are escaped before being rendered into HTML.
8. Reset affects only this namespace and requires confirmation.
9. Export writes a portable JSON file named `anthrocybernetics-cookieblob-seed.json`.
10. No state is sent to a server.

### CookieBlob features mapped to the workbook

| CookieBlob feature | Workbook preview use |
|---|---|
| Persistent local state | Current room, visited rooms, completion, notes, selected focus |
| Cross-room continuity | One state object across all 36 rooms |
| Transmission rail | Human-readable event history for reading and annotation |
| Exportable seed | Portable reading state and notes |
| Importable seed | Resume a reading path on another browser |
| Room registry | Core, applied, and reference room metadata |
| Reset/replay | Clear the preview without touching other CookieBlob projects |

---

## 5. Information architecture

### Entrance

`01-opening-and-orientation.md` is the default room. The first view should explain that the archive is a preview and show the canonical source link.

### Core Workbook

Rooms `01` through `16` preserve the workbook's progression from orientation through facilitation.

### Applied Modules

Rooms `17` through `32` are presented as extensions of the kernel. They are not silently merged into the five-field core.

### Reference

Contents, Changelog, Source SOP, and Original Visual Summary are available as inspectable archive rooms so the preview exposes its own provenance.

### Five Foci

The Five Foci are a routing instrument, not a linear quiz:

- **Phase:** What rhythm, timing relationship, or recovery window is active?
- **Field:** What boundary and conditions surround the phenomenon?
- **Arc:** What is accumulating, changing, or approaching a threshold?
- **Form:** What persists while material, energy, or information moves?
- **Lattice:** What topology, relationship, bottleneck, or redundancy carries it?

Selecting a focus changes the local reading state and creates a transmission; it does not score the reader.

---

## 6. Visual and interaction system

The preview uses a dark archive / terminal-adjacent visual language:

- moss green for grounded or living continuity,
- brass for focus and attention,
- cyan for signal and transmission,
- pink for interpretive material,
- red only for reset or danger-adjacent affordances.

The page is an HTML document, not a literal terminal emulator. Use ordinary buttons and form controls alongside the archive styling.

### Accessibility requirements

- All actions must be real buttons or labels associated with inputs.
- Search and notes need accessible labels or placeholders.
- The current room must be visually distinct and represented by text, not color alone.
- Room completion must include a text check mark or equivalent.
- Reading content must remain selectable and usable without animation.
- Narrow screens may stack panels; no critical control may depend on hover.
- Keyboard shortcuts must not fire while the user is typing in an input, textarea, or select.

### Keyboard shortcuts

- `←` / `→`: previous or next room.
- `C`: mark the current room complete.
- Search and note fields retain normal browser behavior.

---

## 7. Architecture

```text
source/anthrocybernetics-core-workbook/*.md
                    |
                    v
              build.py
                    |
                    v
               index.html
                    |
       +------------+-------------+
       |                          |
  room registry              local state
  embedded content       load / validate / save
       |                          |
       +------------+-------------+
                    |
               renderer
       list / reader / rail / notes
                    |
               seed I/O
           export / import / reset
```

Implementation boundaries:

- `build.py` owns source discovery, metadata, Markdown conversion, escaping, and HTML generation.
- Embedded room data owns reading content and room metadata.
- Browser state owns the reader's local progress and notes.
- Renderer owns DOM output.
- Seed I/O owns serialization and validation.
- No action may treat DOM text as the source of truth for state.
- The generator must resolve applied module paths under `source/anthrocybernetics-core-workbook/modules/`.

---

## 8. Build and verification procedure

From the project root:

```bash
python3 build.py
```

Expected result:

```text
Generated .../index.html with 36 rooms
```

Static smoke test:

```bash
python3 -m http.server 8765
```

Then open `http://127.0.0.1:8765/index.html` and verify:

1. The entrance renders.
2. The room list contains 36 rooms.
3. Applied Modules includes Cognitive Manufacturing.
4. Search finds terms from embedded source text.
5. Previous and next controls navigate rooms.
6. Selecting a Five Foci button updates the state and transmission rail.
7. Completing a room updates the progress bar and room list check mark.
8. A note survives a page reload.
9. Export produces a JSON seed.
10. Import restores a saved room, completion state, and note.
11. Reset clears only this preview after confirmation.
12. The page still renders with network access disabled after initial load.

The source mirror may be refreshed with:

```bash
rm -rf source/anthrocybernetics-core-workbook
curl -fsSL 'https://zo.pub/anthrocybernetics/anthrocybernetics-core-workbook/.zopub.zip' -o /tmp/anthrocybernetics-core-workbook.zip
unzip -q -o /tmp/anthrocybernetics-core-workbook.zip -d source
python3 build.py
```

---

## 9. Publishing procedure

The collection is a static file package, not a hosted application. Publish the project directory with:

```bash
zopub sync anthrocybernetics-core-workbook-cookieblob /home/workspace/AnthroCybernetics/anthrocybernetics-core-workbook-cookieblob
```

The collection should contain:

- `index.html` — user-facing preview.
- `SOP-ANTHROCYBERNETICS-COOKIEBLOB-PREVIEW.md` — build contract.
- `README.md` — short entry point and usage notes.
- `build.py` — reproducible generator.
- `source/` — mirrored Markdown source.

The public collection URL must be reported after every successful sync.

---

## 10. Acceptance matrix

| Requirement | Acceptance test | Status |
|---|---|---|
| CookieBlob-style standalone HTML | Open `index.html` without a build step | Pass |
| Core workbook included | 16 core rooms embedded | Pass |
| Applied modules included | 16 module rooms embedded | Pass |
| Preview remains inspectable | Source mirror, generator, SOP included | Pass |
| Local persistence | Reload preserves state | Pass |
| Portable state | Export/import seed works | Pass |
| Evidence boundary visible | Evidence card in right rail | Pass |
| No server dependency at runtime | Embedded content, no fetch calls | Pass |
| Mobile fallback | Responsive CSS stacks panels | Pass |
| Public archive | zo.pub sync completed | Pass |

---

## 11. Future versions

Potential v0.2 additions:

- A guided “first pass” mode that recommends the next room without hiding the full archive.
- A dedicated evidence index generated from workbook tags.
- Separate seed namespaces for facilitator annotations and practitioner notes.
- A print stylesheet for a paper workbook handoff.
- Optional CookieBlob widget handoff to a larger Cascade or cohort room.
- A lightweight room manifest so external rooms can link into the preview without duplicating content.

Do not add these until v0.1 has been tested as a static package and the canonical workbook's revision process is clear.
