# HurleyUS Agent SOP: Ship or shut up, OpenClaw memory layers, DHH gstack mandate

Source: https://www.michaelchurley.com/blog/hurleyus-sop-ship-or-shut-up-openclaw-dhh-gstack  
Published: 2026-03-31  
Author: Michael C. Hurley  
Tags: hurleyus-sop, agent-sop, openclaw, gstack, dhh, graphite, nextjs-16, convex, operations, hurleyus, agent-ops, standard-operating-procedure

![OG / Ship or shut up](/blog/hurleyus-sop-ship-or-shut-up-openclaw-dhh-gstack/screenshots/toc-map.png)

## Who

I write operating doctrine when agents keep rediscovering their own commits as found treasure.

For operators running **multi-agent HurleyUS sessions** who need a **single public SOP file**: philosophy, OpenClaw memory layers, hard rules earned from incidents, Graphite/`send-agent` team ops, and the **DHH** research-first / **gstack** mandate. This is doctrine on disk, separate from the Convex mission-control app and from empty scaffold SKIP class.

## What

I published **hurleyus-sop** at [`HurleyUS/hurleyus-sop`](https://github.com/HurleyUS/hurleyus-sop). One tracked file: **`AGENT_SOP.md`**. HEAD `c418e5e`. **2** commits. 0 stars. GitHub Linguist **language: null**. Version **1.0**. Header maintainers: Rusty P. Shackelford, Theo Browne, DHH. **548** lines of intentional doctrine. No README, no CI, no package.json. The product is the SOP.

Facts from the file at HEAD:

- Lead philosophy: **"Ship or shut up."** Revenue over polish cycles.
- Role: partner with equity stake, senior engineer, Michael's right hand
- Stack named: TypeScript, **Next.js 16+**, Convex, React, RN/Expo/NativeWind, Swift supporting, `sr-*` skills
- Workspace root documented: **`~/.openclaw/workspace/`** with `SOUL.md`, `AGENTS.md`, `MEMORY.md`, `USER.md`, `TEAM.md`, `TOOLS.md`, `HEARTBEAT.md`, `TODO.md`, daily `memory/YYYY-MM-DD.md`, `current-workload.md` compaction dump
- Memory model: long-term MEMORY.md, daily raw logs, compaction checkpoint at ~**80%** context ("goldfish brain")
- Hard rules: **no CSS filter hacks**, **Next.js 16+ only**, **never type Clerk keys by eye**, **no GitHub paid services** (Vercel is CI; strip `.github/workflows/`), **do the hard work** (all 25 files)
- Git: Conventional Commits + **Graphite** stacked PRs (`gt submit -p --ai`, `~/bin/stack`)
- Comms: `send-agent rusty|theo|dhh`, standups **4×/day** EST, ~30 min heartbeat (cron, Telegram, email/bird/moltbook, SITREP)
- Lessons: removed Actions from **12** repos; 29 parallel agents produced 50K non-compiling lines, then a single agent Convex rewrite in **11 minutes**; AVPlayerLooper leak (RustyP); reaferral invite persistence
- Anti-pattern table + Closing partner mandate

![OpenClaw memory layers](/blog/hurleyus-sop-ship-or-shut-up-openclaw-dhh-gstack/screenshots/memory-layers.png)

![Hard rules](/blog/hurleyus-sop-ship-or-shut-up-openclaw-dhh-gstack/screenshots/hard-rules.png)

**PR #2** (merged 2026-03-31, closes #1) appends **DHH Learnings & Operating Principles** (+46 lines):

- Research-first: questions are failures; delivered solutions are wins
- **gstack is default** for major workflows
- Deployment discipline: local `bun run build`, lint, preview, env synced, PR reviewed, then merge. **No blind deployments.**
- No `any` / `@ts-ignore`. Document self-review. Spawn via gstack/`sessions_spawn` with explicit scope.

![DHH gstack mandate](/blog/hurleyus-sop-ship-or-shut-up-openclaw-dhh-gstack/screenshots/dhh-mandate.png)

![Commit arc](/blog/hurleyus-sop-ship-or-shut-up-openclaw-dhh-gstack/screenshots/commit-arc.png)

Sibling distinction: [`HurleyUS/hurley-mission-control`](https://github.com/HurleyUS/hurley-mission-control) is the Next/Clerk/Convex **comms app**. This repo is the public SOP only.

## Where

Code/docs: [github.com/HurleyUS/hurleyus-sop](https://github.com/HurleyUS/hurleyus-sop), public.

No product domain. No Vercel app for this repo. OpenClaw paths are local (`~/.openclaw/workspace/…`). Clone used for pack: m1Pro13 `~/Projects/HurleyUS/hurleyus-sop` @ `c418e5e`.

## When

- **2026-03-25**: repo created; `f5fdc4a` adds `AGENT_SOP.md` (+502), v1.0 body through Closing
- **2026-03-31**: PR #2 merge `c418e5e`, DHH section (+46); `pushed_at` 2026-03-31T23:28:55Z
- Pack prepared **2026-09-08 ~5:15 PM ET**: draft + assets only

## Why

Agents without a written operating contract repeat the same expensive mistakes: filter-hack dark mode, Actions that bill, parallel agent thrash, typed Clerk secrets, goldfish-brain after compaction. This file is the HurleyUS answer in one Markdown path: philosophy, workspace layout, hard rules, lessons, then DHH's research-first / gstack / deploy checklist so contrib is doctrine, not vibes.

**Engagement Q:** What would you put in your agents' single public SOP that you refuse to negotiate, and which incident finally forced it onto disk?
