📄 2026-04-30.md 5,577 bytes Apr 30, 2026 📋 Raw

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 <path> 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