# 2026-04-30 ## Blog Post: "Two Steps Forward, Two Steps Back" **Matt requested:** Blog post about project management being hard, "two steps forward, two steps back" framework. **Delivered:** 1. Created and published: `two-steps-forward-two-steps-back` (openclaw category, 3 min read) 2. **Cover image:** `/blog/static/images/posts/two-steps-wired.svg` (custom Wired-style SVG) 3. **Inline SVGs:** `full-stack-diagram-wired.svg` (in Part 1), `three-agents-wired.svg` (in Part 3) 4. Sections: The Grand Plan, Dashboard (dinner planning miss), Blog (no SEO), Agents (parallelism failures), Fixes, The Real Measure 5. Published to: `https://hoffdesk.com/article/two-steps-forward-two-steps-back` 6. RSS feed updated 7. All OG/Twitter/JSON-LD SEO metadata present 8. **Post-publish edits:** Replaced hero with custom cover (`two-steps-wired.svg`), fixed "Three steps back" → "Two steps back" for voice consistency ### Cover image design - **File:** `two-steps-wired.svg` (800x400) - **Visual:** Footprint trail zigzagging upward — solid cyan steps (FORWARD) alternating with dashed amber steps (BACK) - **Arc arrow** in magenta connecting the trail - **Animated dot** moving along the zigzag - **Headline:** "TWO STEPS FORWARD, TWO STEPS BACK" in stacked Inter Bold - **Editorial subtitle:** "the net direction is forward. that counts." - **Stats badge:** "← NET DIRECTION: FORWARD" - **Style:** Same Wired aesthetic — dark radial gradient, grid pattern, scanlines, glitch bands, grain overlay ## Quant Research (carried forward) - Path 1 (crypto arb) and Path 3 (futures rotation) — marked as research, no accounts opened # 2026-04-30 ## Blog Post: "Two Steps Forward, Two Steps Back" **Matt requested:** Blog post about project management being hard, "two steps forward, two steps back" framework. **Delivered:** 1. Created and published: `two-steps-forward-two-steps-back` (openclaw category, 3 min read) 2. **Cover image:** `/blog/static/images/posts/two-steps-wired.svg` (custom Wired-style SVG) 3. **Inline SVGs:** `full-stack-diagram-wired.svg` (in Part 1), `three-agents-wired.svg` (in Part 3) 4. Sections: The Grand Plan, Dashboard (dinner planning miss), Blog (no SEO), Agents (parallelism failures), Fixes, The Real Measure 5. Published to: `https://hoffdesk.com/article/two-steps-forward-two-steps-back` 6. RSS feed updated 7. All OG/Twitter/JSON-LD SEO metadata present 8. **Post-publish edits:** Replaced hero with custom cover (`two-steps-wired.svg`), fixed "Three steps back" → "Two steps back" for voice consistency ### Cover image design - **File:** `two-steps-wired.svg` (800x400) - **Visual:** Footprint trail zigzagging upward — solid cyan steps (FORWARD) alternating with dashed amber steps (BACK) - **Arc arrow** in magenta connecting the trail - **Animated dot** moving along the zigzag - **Headline:** "TWO STEPS FORWARD, TWO STEPS BACK" in stacked Inter Bold - **Editorial subtitle:** "the net direction is forward. that counts." - **Stats badge:** "← NET DIRECTION: FORWARD" - **Style:** Same Wired aesthetic — dark radial gradient, grid pattern, scanlines, glitch bands, grain overlay ### SVG bugfix - Duplicate `opacity` attributes on `` elements caused blue question mark box in browser - Fixed: split into `fill-opacity` + `stroke-opacity` ## Cache Control — Server-Side Middleware Added **Problem:** Cloudflare + browser caching made iterative SVG/CSS changes not stick. Hard refreshes + cache busting needed. **Fix applied to `main_v2.py`:** - `CacheControlMiddleware` added to `blog_app` and `family_app` - HTML pages: `Cache-Control: no-cache, no-store, must-revalidate` - Static assets: `Cache-Control: public, max-age=3600` (1 hour refresh) - Also sends `CDN-Cache-Control` for Cloudflare **Template fix:** - Blog hero images now include `?v={{ updated_at }}` cache bust param - Cover image URL is always unique per edit **Still pending (filed at `shared/project-docs/cache-control-backlog.md`):** - Cloudflare Page Rule for `/blog/static/*` to bypass CF's 4-hour default cache - Or a CF API token for programmatic cache purge ## Silent Observer Spec Review Socrates delivered `shared/project-docs/silent-observer-integration-spec.md` (692 lines). **Daedalus reviewed and gave opinions:** **Good:** - Tier 1/Tier 2 split (<10ms tripwire + async LLM) is the right architecture - Three Redline rules (temporal conflict, resource conflict, missing critical variable) match real household friction - No auto-writes with [Confirm] pattern is correct for Phase 8 - Brain query constraints (3/message, 5s timeout, 0.5 threshold) are sensible - Miller test family is good proxy **Critiques (shared with Matt):** 1. `confidence` field is overloaded — tripwire score, extraction confidence, brain relevance are three separate gates, not one blended number 2. Speak messages too verbose — 24-word conflict messages need trimming to <10 words for phone notification readability 3. Multi-message context ("I'll do it" in reply) is 60% of real matches but listed as open question — should be Phase 8.3 priority 4. Miller test scenarios are too clean — real family chat has typos, abbreviations, emoji-only replies, half-sentences. Recommend Week 0.5: record 100 real messages, hand-label, tune against them 5. "Family Adoption: TBD" is the wrong success metric — add specific UX gate: "Aundrea has never asked why the bot spoke" for 7 days before enabling in production ## Quant Research (carried forward) - Path 1 (crypto arb) and Path 3 (futures rotation) — marked as research, no accounts opened