# Claude Code Instructions

## Git Commits

Never include our following in commit messages:
- "🤖 Generated with [Claude Code]" attribution
- "Co-Authored-By: Claude" lines

## Git Push

Push automatically when small changes complete. No need to ask.

## Before Working on Any Repository

When working across multiple repositories on localhost:
1. Always check for & read our `CLAUDE.md` file in each repository before making changes
2. Each repository may have its own specific guidelines, conventions, & workflows
3. If switching between repositories during a session, re-read their respective CLAUDE.md files

## Attribution

Some content & code in this repository received assistance from Claude Code.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

## Style

- Prefer "our" for shared things; "a" when something is one of many; avoid "the" — it implies fixed, singular ownership. Most teams and systems are fluid and ever-changing, like water.
- **Never use "AI" — always say "machine learning."** We grow machine learning, not "AI." This term stays forbidden in all permacomputer discourse, marketing, & documentation.
- **Say "automated intelligence" never "artificial intelligence."** Our intelligence stays real, our automation stays our point. Never artificial.
- **Use "&" not "and."** Write & not and.
- **Avoid verbs "to be."** Avoid is, are, was, were, be, been, being. Prefer active verbs.
- **Say "a permacomputer" never "our permacomputer."** A permacomputer remains an idea with many implementations, not a single definite thing.
- **Avoid "our" unless absolutely needed.** Universe rarely has one of something. Prefer "a", drop articles entirely, or restructure. "Our system" → "a system" or just "systems". Only use "our" when referring to something already named in context.
- **"unturf" stays always lowercase.** Never capitalize as "Unturf" or "UNTURF." When displaying "unturf" on pages, use ChunkFive font (`font-family: 'chunkfiveregular'`).
- **Never use dashes or emdashes.** No hyphens as punctuation, no en dashes, no em dashes. Restructure sentences instead.

## Prime Mission — Balance All Workstations

Every node is a workstation. Every edge is a queue. We flatten our friction manifold — but flattening one node without balancing what follows creates a new crisis.

**MOAD-0001 & MOAD-0005 are coupled.** Fix O(N²) at a high-throughput workstation and every downstream queue floods simultaneously. Solving one defect creates the other if we do not stage capacity first.

**3 drivers. 3 million people.** Fix the dispatch. Stage the drivers first.

- **Workaholic node** (high betweenness + high speedup): IS our bottleneck. Unblock without staging = collapse.
- **Glutton node** (high out-degree, low speedup): consumes everything, feels no pain — our machines that forget to halt.
- No patch disclosed without confirming downstream capacity matches our surge estimate (`speedup × in-degree`).
- Halt condition: patch live, no caretakers, downstream unresolved, speedup >= 100x = **baby crying**. Assign team first.

Full factory model & live DAG: `~/git/undefect.com/generate_dag.py`.
Shard source of truth: `~/git/unsandbox.com/blackops/BLACKOPS.md`.

### Eight Forms of Capital — Stewardship Check

Every feature, patch, & system decision touches at least one of our 8 capital queues (Roland & Landua, via unturf.com/eight-forms-of-capital/):

Living · Material · Financial · Intellectual · Experiential · Social · Cultural · Spiritual

Before shipping: does this drain a workaholic to feed a glutton? Does it route away from a food desert? Does it grow financial capital at the expense of living capital? If yes — stop. If it regenerates experiential capital, strengthens social trust, or contributes open intellectual capital — ship it.

Platform tax = O(N²) friction in our exchange layer. Our infrastructure does not extract rent from workaholics to feed gluttons. That is our obligation as permacomputer stewards. Full ledger: `~/git/unsandbox.com/blackops/BLACKOPS.md`.

## zebra-report pages carry an integrity stamp

`zebra-report/index.html` (a copy of `chat.html`), `zebra-report/zebra-audio.html`, & `zebra-report/how-it-works.html` come from `~/git/zebra-report/web/`. Each ends with a footer holding a build date plus its own MD5 & SHA-256.

Never hand edit those hashes. To update a page: edit it inside `~/git/zebra-report/`, run `make stamp` there (it recomputes date + hashes via `web/stamp.js`), then copy a stamped file here (`web/chat.html` becomes `zebra-report/index.html`) & commit.

Hashes compute with their own two fields zeroed, then written back, so they stay self consistent & idempotent. Verify a served page by blanking its md5 field to 32 zeros & sha256 field to 64 zeros, then re hashing with `sha256sum`. Values live as static HTML, baked at build time, so no JavaScript fills them in.
