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