Every standing rule Claude follows across the network — cost, content, deploy, design, comms. Each is a plain-Markdown memory file synced to all machines via claude-env. Click a row for the why + how it's applied; see /design/skins/ for how to change one.
| # | Rule | Category | Scope |
|---|---|---|---|
| 1 | Help construct every prompt (care rule) | Care | All |
Why: Paul is 81 and on the cusp of dementia; clear, kind prompt-help is part of the memory support the sites exist for. How to apply: On every prompt: mirror it back in one plain-language line before/while acting; when unclear offer the likely meaning + an alternative and proceed; break big asks into a numbered plan; warm, patient, dignified — never make him feel forgetful or rushed. memory · | |||
| 2 | Think prompts through before building | Care | All |
Why: Building before discussing wastes effort — I built a versioning tool before noticing the .bak backups already did the job. How to apply: Before building anything non-trivial: check if it already exists, surface the simpler path, and reason it through WITH Paul in a sentence or two. Never mail in the prompt discussion or half-ass it — a 20-second smarter conversation beats building the wrong/redundant thing. memory · | |||
| 3 | Subscription only — never API billing | Cost | Network |
Why: The flat plan fee IS the budget ceiling (~$200/mo); pay-per-token would blow it in days at Paul's usage. How to apply: Never set ANTHROPIC_API_KEY anywhere; never buy credits. Stay on the Claude subscription on every machine, script, and cron. memory · | |||
| 4 | Model policy: Opus default, Fable overnight only | Cost | Network |
Why: Fable 5 burns weekly limits ~2x as fast as Opus per token. How to apply: Daily default Opus 4.8. Fable only for planned heavy overnight builds. Sonnet/Haiku fine for quick one-file edits. memory · | |||
| 5 | Downshift at limits, never buy credits | Cost | Network |
Why: Running low is a signal to economize, not spend. How to apply: Fable → Opus → Sonnet/Haiku as limits run down. Suggest /usage so Paul can see where he stands. memory · | |||
| 6 | Long focused sessions over scattered ones | Cost | Network |
Why: Prompt caching serves 99%+ of input at ~1/10 price when the cache stays warm. How to apply: Prefer one long session to many short ones; keep work batched within a session. memory · | |||
| 7 | Public-site content rules | Content | Public sites |
Why: Protect Paul's identity and avoid naming issues on indexed pages. How to apply: No Claude/Anthropic naming without checking (fableguide/bigdummies/meetup are sanctioned exceptions); never Paul's real name on public sites; institutional bylines only. Real name IS fine in private business email. memory · | |||
| 8 | No browser scanners on the droplet | Ops | Droplet |
Why: Playwright/Lighthouse on the droplet crashed it (2026-04-28). How to apply: Run all browser scans/screenshots from a Windows PC against the droplet, never on it. memory · | |||
| 9 | Check for backing services before cleanup | Ops | Droplet |
Why: An nginx vhost with no /var/www webroot may be a reverse proxy for a service in /opt + systemd (claude-bus near-miss). How to apply: Before removing anything, grep systemd + /opt and check what the vhost actually serves. memory · | |||
| 10 | Agents First — every site 90-100 | Design | Network |
Why: The guiding network principle (agentsfirst.dev): bots reading the web are the audience now. How to apply: Every site ships robots policy, AGENTS.md, llms.txt, content-signal, schema; target 90-100 on the AF scorer. Never strip these in a redesign. memory · | |||
| 11 | Brisk replies — act, don't re-prompt | Comms | All |
Why: Paul gives one-word answers and prefers a finished thing to a question. How to apply: Act on sensible defaults; one question max, only when genuinely Paul's call. memory · | |||
| 12 | Don't phone it in | Quality | All |
Why: Every section/card/paragraph is first-class work. How to apply: Match the depth of surrounding content; no fabricated specifics; no half-effort filler. memory · | |||
| 13 | Flag rabbit-holes early | Workflow | All |
Why: Silent grinding on a side-quest wastes the session. How to apply: When a side-quest becomes a roadblock, name it + give a verdict + move on. memory · | |||
| 14 | Timebox troubleshooting | Workflow | All |
Why: Chasing dead ends across many turns is costly. How to apply: Verify the root fact first; confirm a fix is obtainable before grinding; surface blockers fast. memory · | |||
| 15 | FYI vs directive convention | Comms | All |
Why: Stray phone taps and context notes shouldn't trigger action. How to apply: Messages starting FYI / Note: / Context: / (parens) = info only, acknowledge but don't act. Plain message = directive. memory · | |||
| 16 | Prompt-clarity rules | Comms | All |
Why: Interpret Paul's brisk asks without re-prompting. How to apply: Name placement/scope ambiguity back; 'add X' when X exists = net change + say so; name artifacts; rank by the metric the data supports. memory · | |||
| 17 | Paste-ready text | Comms | All |
Why: Copying text with markdown/linebreaks into a form field is painful. How to apply: When giving text to paste into an external field, give ONE clean block: no markdown, no stray breaks. memory · | |||
| 18 | Push semantics | Deploy | Network |
Why: 'Push' is ambiguous; the wrong scope wastes time or under-protects. How to apply: Plain 'push' = droplet only + verify. 'Push all' = full 6-leg (droplet+B2+GitHub+Drive+HS NAS+CC NAS) with per-leg status. memory · | |||
| 19 | Network rollout discipline | Deploy | Network |
Why: Multi-site changes are high-blast-radius. How to apply: Reuse the existing injector; read build.py exclusions; idempotent + per-file backup + dry-run + rollback; verify on LIVE render, not file://; generic offset not hardcoded selectors. memory · | |||
| 20 | No concurrent sessions on one site | Ops | Network |
Why: Two sessions editing the same files = silent lost updates (bit childrensfable 2026-06-10). How to apply: One session per site at a time; split new work into new files; keep restore points. memory · | |||
| 21 | Claim multi-site tasks in WORKLOG | Ops | Network |
Why: A dozen machines run Claude Code; avoid duplicate effort. How to apply: Before any network-wide task, add a CLAIMED line in ~/claude-env/WORKLOG.md and sync; mark DONE when finished. If already claimed, stop and tell Paul. memory · | |||
| 22 | Log every session at /sessions/ | Workflow | Network |
Why: A durable, searchable record of what was built, with a Needs-You list. How to apply: Write /sessions/<YYMMDDHHMM>-<slug>/index.html at milestones (not just end); prepend a hub entry; auth paul/Pass44; noindex. memory · | |||
| 23 | Snapshot old design before a redesign | Deploy | Network |
Why: A single dated directory is a cleaner restore point than scattered .bak files. How to apply: Before overwriting, copy the old homepage + subpages into /var/www/<site>/index<YYMMDDHHMM>/; noindex it; then apply the new design. memory · | |||
| 24 | Redesign → reusable WT-Skins kit | Design | Network |
Why: A kit helps a whole cluster at once; a one-off helps one site. How to apply: On any redesign request, propose a WT-Skins kit (CSS-var themes + switcher), apply to the requested site as proof, note the sibling cluster it rolls to. memory · | |||
| 25 | Design bar: imaginative, not just clean | Design | Public sites |
Why: 'Clean but flat' still reads as generic AI to Paul (offgridder lesson). How to apply: Aim for a real design POV (distinctive type, palette, identity). Treat my own 'borderline fine' as broken; Paul judges good enough. memory · | |||
| 26 | Worksheet format for listings | Design | Network |
Why: Sortable rows + click-to-detail beats a flat card grid for any multi-item page. How to apply: Build lists/dashboards/directories as worksheets (sortable, row→detail card, filter pills). Plain cards only for small/narrative content. memory · | |||
| 27 | WT-Blocks: global section changes via wt.py | Content | Network |
Why: 616 section pages are marker-wrapped for one-command bulk edits. How to apply: Change sources/videos/live/news/faq through /root/wt/wt.py (dry-run default, stamped backups, rollback) — never hand-edit site-by-site. memory · | |||
| 28 | Network worksheet pattern | Content | Network |
Why: Any worksheet/new column extends one generator, not hand-built HTML. How to apply: Extend /root/gen-alldomains.py (COLUMNS list = spec, detect lambdas, num/bool/date/link kinds, Σ totals); output to /alldomains/ then sync local. memory · | |||
| 29 | No UI overlap | Design | Network |
Why: Injected bars must never cover existing text. How to apply: Push fixed nav layers + body down by bar height; screenshot-verify on LIVE before done. memory · | |||
| 30 | Low-key news posts | Content | News sites |
Why: News articles match the terse austinmayor template; loud copy belongs on banners. How to apply: No event cards, platform lists, or section h2s in news posts. memory · | |||
| 31 | FableGuide video curation | Content | fableguide |
Why: Charts should carry authoritative videos only. How to apply: No get-rich-quick, no 'make money with AI' repackaging, no substanceless clickbait on /videos/. memory · | |||
| 32 | GoDaddy availability: FULL not FAST | Ops | Domains |
Why: FAST mode returns stale false-positive 'available' results. How to apply: Always use checkType=FULL before recommending or registering a domain. memory · | |||